Я всегда использовал только Java 6 и сейчас догоняю, чтобы узнать, что нового в Java 8. Я читал эту статью здесь: http://www.drdobbs.com/jvm/lambda-expressions-in-java-8/240166764?pgno=2
И он говорит:
API Java определяет несколько общих функциональных интерфейсов в пакете java.util.function. Один из интерфейсов, BiFunction, описывает функции с типами параметров T и U и типом возвращаемого значения R. Вы можете сохранить нашу лямбду сравнения строк в переменной этого типа:
BiFunction<String, String, Integer> comp
= (first, second) -> Integer.compare(first.length(), second.length());
Однако это не поможет вам в сортировке. Нет метода Arrays.sort, которому требуется BiFunction. Если вы раньше использовали функциональный язык программирования, вам это может показаться любопытным. Но для Java-программистов это вполне естественно. Такой интерфейс, как Comparator, имеет конкретное назначение, а не просто метод с заданными параметрами и типами возвращаемых значений. Java 8 сохраняет эту особенность. Когда вы хотите что-то сделать с лямбда-выражениями, вы все равно хотите помнить о назначении выражения и иметь для него определенный функциональный интерфейс.
Однако, когда я вижу этот поток: Как присвоить лямбда переменной в Java 8?
Ответы на вопрос там предлагают делать именно то, что в цитируемом абзаце сказано, что вы не можете этого сделать.
Итак, информация в статье неверна, или я что-то не так читаю?
Спасибо!
Comparator
и использовать ее в вызове сортировки... - person Louis Wasserman   schedule 05.02.2015