Hello all;

The naming of the Collection.removeIf(Predicate) method has always been an 
uncertain choice. We've gone back and forth between naming it removeIf and 
overloading the existing removeAll(Collection) with a removeAll(Predicate). Now 
that all other library and language decisions seem to be settled it seems 
reasonable to make a final decision on this method naming. 

This patch proposes to use the removeAll(Predicate) overload. This choice is 
made to increase the discoverability of the method and to "reuse" the existing 
user understanding of the removeAll name. There is a minor source 
incompatibility induced by overloading the removeAll name--if explicit null is 
passed then a compiler cannot resolve which overload to use. Since null is not 
a legal value for either overload this source incompatibility is expected to 
only affect tests which check to see what response implementations return for 
null. The ambiguity can be resolved by providing a cast to either the 
Collection or Predicate types to select the appropriate overload.

http://cr.openjdk.java.net/~mduigou/JDK-8024291/0/webrev/

Thanks,

Mike

Reply via email to