RFR: 8023339 : (xs) Rename Collection.removeIf(Predicate) to removeAll(Predicate)

Mike Duigou mike.duigou at oracle.com
Fri Sep 13 19:17:28 UTC 2013

Based upon feedback we've decided to withdraw this change. It will remain removeIf()


On Sep 4 2013, at 14:08 , Mike Duigou wrote:

> 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

More information about the core-libs-dev mailing list