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

Недопустимая ссылка на метод для перегруженного метода с разными значениями
При попытке скомпилировать выражение Comparator.comparing(String::toLowerCase) компилятор Java возвращает ошибку. См. следующий вопрос для получения дополнительной информации: Почему Comparator.comparing не работает с методом...
2702 просмотров

Ограничения ссылок на статические методы в Java 8
Я пытаюсь использовать ссылки на методы для захвата вызовов методов и сталкиваюсь с некоторыми ограничениями. Это отлично работает: <T> void capture(Function<T, ?> in) { } private interface Foo { String getBar(); }...
3519 просмотров
schedule 14.02.2023

Справочник по методу экземпляра и параметры Lambda
У меня возникли проблемы с пониманием синтаксиса для ссылки на метод, где есть два параметра a и b , а ссылка относится к методу a на b . Например, я понимаю, как Arrays.sort(personArray, comparators::compareByName); эквивалентно...
688 просмотров

Почему лямбда-выражения в Java 8 требуют, чтобы переменные, используемые внутри него, использовали модификатор final, но не при использовании ссылки на метод?
Рассмотрим следующий класс: class Foo<T> { void handle(T t) { System.out.println("handling " + t); } public static void main(String[] args) { List<Integer> list = new ArrayList<>();...
1607 просмотров

Utility Class для начальной загрузки лямбда-выражений или ссылок на методы для цепочки методов?
Благодаря функциональным интерфейсам, представленным в Java 8, вы можете легко связать различные выражения в одно новое выражение, как показано в фрагменте кода ниже. public class PredicateChaining { public static void main(String[] args) {...
357 просмотров

Каково использование ссылки на конструктор в Java 8
Я читал о функциях Java 8, которые привели меня к этому article , и мне было интересно узнать о фактическом использовании ссылки на конструктор, я имею в виду, почему бы просто не использовать new Obj ? P.S. пробовал гуглить, но ничего толкового...
329 просмотров

Как получить информацию о методе FunctionalInterface в java 8 lambda
Я хочу проверить, равны ли два лямбда-метода; Например: public class App { @FunctionalInterface public interface TestFunctionInterface { void get(); } public static void main(String[] args) throws Throwable {...
104 просмотров

Имеет ли ссылка на метод в Java 8 конкретный тип, и если да, то какой?
Этот вопрос довольно тесно связан с другим . Однако мне кажется, что принятый ответ на этот вопрос не столь однозначен. Итак, какой является тип ссылки на метод в Java 8? Вот небольшая демонстрация того, как ссылка на метод может быть...
2250 просмотров

Как разрешить неправильные параметры из LambdaMetafactory
Я пытаюсь выполнить аннотированный метод в основном методе в App.java с помощью LambdaMetafactory.metafactory() . Код можно найти здесь: код на github Если я попытаюсь выполнить этот код, он выдаст исключение: Incorrect number of...
614 просмотров
schedule 25.02.2023

Ссылка на метод в Java 8
public class Car { private int maxSpeed; public Car(int maxSpeed) { this.maxSpeed = maxSpeed; } public int getMaxSpeed() { return maxSpeed; } } Мы можем отсортировать список автомобилей по, Car carX...
4342 просмотров
schedule 16.11.2023

Использование ссылок на методы для экземпляра, определяемого во время выполнения в Java
Я тестировал правила использования ссылок на методы, но написанный мной код не компилировался. Компилятор постоянно сообщает мне, что я не могу ссылаться на нестатический метод из статического контекста. Однако в документах Java прямо написано, что...
589 просмотров
schedule 28.10.2023

Являются ли ссылки на методы потокобезопасными параметрами метода в Java
у меня следующий сценарий: interface ValueBinding<T> { public void setValue(T input); } public enum FacesBinding { VALUE; public void bindString(ValueBinding<String> fcn, HttpServletRequest req, String param){ try...
483 просмотров

Целевой тип этого выражения должен быть функциональным интерфейсом в MethodReferences.
Почему следующий код не компилируется. Consumer con = (s) -> System.out::println; Это говорит Целевой тип этого выражения должен быть функциональным интерфейсом. хотя Consumer является функциональным интерфейсом. Ниже работает...
46888 просмотров
schedule 17.11.2022

Разрешение перегрузки со ссылками на методы и специализациями интерфейса функций для примитивных типов
Допустим, у нас есть класс и перегруженная функция: public class Main { static final class A { } public static String g(ToIntFunction<? extends A> f) { return null; } public static String g(ToDoubleFunction<?...
192 просмотров

Нулевая ссылка в ссылке на функцию Java 8, но не в лямбда-абстракции
Недавно я столкнулся с еще одним NullPointerException в Java. Мне потребовалось довольно много времени, чтобы понять это, но в конце концов я нашел проблему. Вот в чем дело: это ссылка на метод Java 8, которая вызывает исключение . Когда я...
36 просмотров

Справочник по методу — передача функции в метод с аргументом-потребителем
Я изучаю ссылки на методы из Java 8, и мне трудно понять, почему это работает? class Holder { private String holded; public Holder(String holded) { this.holded = holded; } public String getHolded() { return...
312 просмотров

Kotlin ссылка на член, чтобы вернуть сам объект
Есть ли способ написать ссылку на член/метод, чтобы вернуть сам объект в Котлине? То есть он может упростить и заменить следующую лямбду: { it }
86 просмотров

Компилятор Java: как два метода с одинаковыми именами и разными сигнатурами могут соответствовать вызову метода?
У меня есть этот класс под названием Container : public class Container { private final Map<String, Object> map = new HashMap<>(); public void put(String name, Object value) { map.put(name, value); } public...
460 просмотров
schedule 13.08.2023

Как превратить список‹Элемент› в карту‹Элемент, Completeablefuture‹xyz››
У меня есть асинхронный метод с полным будущим результатом: public CompletableFuture<DogLater> asyncDogLater(String dogName){} У меня есть список собак: List<Dog> dogs; Теперь я хочу создать карту от имени собаки до...
108 просмотров

Как преобразовать справочный код метода Java в Kotlin
У меня есть этот код на Java: mViewModel.getSetupData().observe(this, this::updateTime); Метод updateTime принимает один параметр. При преобразовании этого кода в Kotlin не работает следующее: mViewModel?.getSetupData()?.observe(this,...
482 просмотров