In Java 8, type inference has been expanded to target input , which allows you to write:
Comparator<String> ascending = comparingInt(String::length);
without using a witness of type ( Comparator.<String> comparingInt ). However, the last expression below does not compile. Is there a reason? Is there any workaround?
Comparator<String> ascending = comparingInt(String::length); //ok Comparator<String> descending = ascending.reversed(); //ok Comparator<String> descending = reverseOrder(comparingInt(String::length)); //ok Comparator<String> descending = Comparator.<String>comparingInt(String::length) .reversed(); //ok Comparator<String> descending = comparingInt(String::length).reversed(); //error
java generics java-8 typing
assylias Feb 13 '14 at 10:41 2014-02-13 10:41
source share