Rather than canFill, how about renaming to fillIfAbsent?  I think then the intent would be clearer to me.