RFR: 8023339 : (xs) Rename Collection.removeIf(Predicate) to removeAll(Predicate)
mike.duigou at oracle.com
Wed Sep 4 14:08:49 PDT 2013
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.
More information about the lambda-dev