Вопросы по теме 'method-reference'

ссылка на метод против лямбда-выражения
Я хочу заменить лямбда-выражение ссылкой на метод в приведенном ниже примере: public class Example { public static void main(String[] args) { List<String> words = Arrays.asList("toto.", "titi.", "other");...
748 просмотров
schedule 02.12.2021

Понимание ссылки на метод с вновь созданным экземпляром
Я полностью понимаю эту форму: Set<T> set = new HashSet<>(); list.stream().allMatch(t -> set.add(t)); // And that list.stream().allMatch(set::add); Но этот случайный случай меня действительно смущает:...
144 просмотров
schedule 09.10.2021

Оценка выражений в ссылках на методы Java во время выполнения
В разделе Оценка времени выполнения Ссылки на методы Спецификации языка Java упоминается, что: Во время выполнения оценка выражения ссылки на метод аналогична оценке выражения создания экземпляра класса, поскольку обычное завершение создает...
480 просмотров
schedule 18.10.2021

Java8: как вызвать метод для переданного типа
Я пытаюсь реализовать шаблон декоратора, моя проблема в том, что у меня есть разные сгенерированные источники, которые будут переданы декорированному маскеру, у меня нет общего родителя, который предоставляет методы, которые мне нужны для выполнения...
82 просмотров
schedule 26.11.2021

Справочник по методу ↔ лямбда-эквивалент
Если вы поместите курсор на ссылку на метод связанного получателя, например str::toUpperCase в IntelliJ IDEA, и нажмете Alt + Enter, он предложит заменить его лямбдой. Если вы продолжите, он изменит ссылку на метод на () -> str.toUpperCase() ....
189 просмотров
schedule 26.09.2021

Как может Java Predicate ‹T› разрешить использование метода без аргументов?
Из того, что я изучил, Predicate - это функциональный интерфейс с абстрактным методом boolean test(T var1); . Итак, если я использую ссылку на метод Java 8 и передаю ее функции getAllVegeterianDish(List<Dish> dish, Predicate<Dish> p ,...
46 просмотров

как выразить (String a) → a.contains(o) с помощью ссылки на метод java 8
"String::contains" неверен. но как выразить лямбду? Кроме того, когда я пишу это в IntelliJ IDEA: obj.testPredicate (список, String :: содержит); Я получаю сообщение об ошибке "String::contains": на нестатический метод нельзя ссылаться...
4173 просмотров
schedule 30.04.2022

SonarLint: замените эту лямбду ссылкой на метод.
У меня есть коллекция, содержащая список ошибок. Я хотел сгруппировать их по ключу (UUID UserId). Для этого я скопировал код из этого ответа: https://stackoverflow.com/a/30202075/4045364 Collection<FilterError> filterErrors = new...
869 просмотров

Запутался с использованием ссылки на метод в Comparator.comparing()
Я самообучающийся разработчик, сейчас изучаю Java. Я узнал, что для использования ссылки на метод для функционального интерфейса сигнатура метода, на который мы ссылаемся, должна совпадать с сигнатурой абстрактного метода внутри этого...
55 просмотров

Передать ссылку на метод из разных подклассов
В настоящее время я застрял в выяснении того, как работают ссылки на методы. Это то, чего я пытаюсь достичь. User user = new User(...); user.getValue(ADerived::getPropertyFromA); user.getValue(BDerived::getPropertyFromB); ADerived и BDerive...
47 просмотров
schedule 26.06.2022

Ссылка метода на частный конструктор выдает IllegalAccessError
Редактировать: спасибо за комментаторов, пытающихся воспроизвести! Похоже, что это проблема именно с Dexguard. это может быть связано с интеграцией DexGuard в Android Studio 3.0 . Поэтому я сталкиваюсь со странной ошибкой при попытке передать...
242 просмотров

Ссылка на метод не компилируется - Integer::new
Почему это не компилируется? Stream.generate(Integer::new(1)).limit(10); Это дает ошибку Синтаксическая ошибка в токене "новый", AssignmentOperator ожидается после этого токена Конечно, я мог бы переписать это выражение в...
395 просмотров
schedule 08.08.2022

Статический контекст не может получить доступ к нестатическому в коллекторах
У меня есть группа студентов. Сначала я хочу сгруппировать их по меткам. Затем я хочу еще больше сгруппировать эти наборы в студентов с одинаковыми именами. Map<Integer,Map<String,List<String>>> groupping = students.stream()...
31490 просмотров

Мне сказали преобразовать лямбду с параметризованным конструктором в ссылку на метод
Допустим, у меня есть класс Gizmo с конструктором, который принимает строку. Допустим, я хочу преобразовать List<String> в List<Gizmo> . Я мог бы написать: List<String> strings = new ArrayList<>();...
1349 просмотров
schedule 10.09.2022

ссылка на метод экземпляра. не найдено подходящего метода для
Я знакомлюсь с новыми функциями java 8. У меня есть следующий класс: class InstanceMethodClass { Integer testStr(String str1,String str2) { return str1.compareTo(str2); } } и следующий вызов: Arrays.sort(new...
823 просмотров
schedule 28.03.2023

В чем преимущество использования ссылок на методы в этом случае?
У меня есть две переменные следующим образом: List<Basket> bigBasket = new ArrayList<>(); Basket basket = new Basket(); Я написал следующий код, чтобы добавить связь между элементами в bigBasket и basket : for (Fruit...
1008 просмотров
schedule 21.09.2023

Ошибки компилятора при использовании ссылки на метод в качестве лямбда для методов, которые ожидают интерфейс с универсальным типом, когда тип времени выполнения также является универсальным типом
Я пытаюсь написать некоторый код, который получает различные реализации классов в пакете java.util.function.* , но я продолжаю работать с определенной ошибкой компилятора для определенного синтаксиса, который я действительно хотел бы обойти...
1035 просмотров

Как получить ссылку на метод для всех методов в классе (Java)?
Справочник по методу для конкретного метода в Java 8 можно получить как Class::Method . Но как получить ссылку на метод всех методов класса? Все нужные методы имеют разные имена, но одинаковую сигнатуру типа. Кроме того, имена методов...
2439 просмотров
schedule 19.07.2023

Почему имя класса/объекта должно быть явно указано для ссылок на методы?
Когда я хочу сослаться на метод в текущей области, мне все равно нужно указать имя класса (для статических методов) или this перед оператором :: . Например, мне нужно написать: import java.util.stream.Stream; public class StreamTest {...
624 просмотров
schedule 02.07.2023

Создание нового объекта при использовании потоков Java 8
Есть ли разница в использовании следующих конструкций, кроме немного лучшей читабельности в последнем? someList.stream().map(item -> new NewClass(item)).collect(Collectors.toList());...
73639 просмотров