Запитання з тегом «method-reference»

2
Comparator.reversed () не компілюється за допомогою лямбда
У мене є список з деякими об'єктами користувача, і я намагаюся сортувати список, але працює лише з використанням методу посилання, з виразом лямбда компілятор видає помилку: List<User> userList = Arrays.asList(u1, u2, u3); userList.sort(Comparator.comparing(u -> u.getName())); // works userList.sort(Comparator.comparing(User::getName).reversed()); // works userList.sort(Comparator.comparing(u -> u.getName()).reversed()); // Compiler error Помилка: com\java8\collectionapi\CollectionTest.java:35: error: cannot …

3
Чи є кешування посилань на методи хорошою ідеєю в Java 8?
Подумайте, у мене є такий код: class Foo { Y func(X x) {...} void doSomethingWithAFunc(Function<X,Y> f){...} void hotFunction(){ doSomethingWithAFunc(this::func); } } Припустимо, що hotFunctionце називається дуже часто. Чи було б тоді доцільним кешувати this::func, можливо так: class Foo { Function<X,Y> f = this::func; ... void hotFunction(){ doSomethingWithAFunc(f); } } Наскільки …

4
Чому тип повернення лямбда не перевіряється під час компіляції?
Використовуваний посилання методу має тип повернення Integer. Але несумісне Stringдозволено в наступному прикладі. Як виправити withдекларацію методу, щоб забезпечити безпеку типу посилання методу без ручного введення? import java.util.function.Function; public class MinimalExample { static public class Builder<T> { final Class<T> clazz; Builder(Class<T> clazz) { this.clazz = clazz; } static <T> Builder<T> …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.