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

Что означает произвольный объект определенного типа в Java 8?
В Java 8 есть функция "Справочник по методам". Одним из таких является «Ссылка на метод экземпляра произвольного объекта определенного типа». http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html#type Может кто-нибудь...
12590 просмотров
schedule 19.07.2022

Как устранить AbstractMethodError из LambdaMetafactory
Я получаю AbstractMethodError от вызова метода, определенного вызовом LambdaMetafactory#metafactory() . Я не могу понять, что я делаю неправильно, чтобы вызвать это. Я просмотрел довольно много примеров использования...
1030 просмотров
schedule 28.07.2022

Целевой тип этого выражения должен быть функциональным интерфейсом.
Ниже фрагмент кода дает мне ошибку компиляции в .filter(Book::getPrice >200) Ошибка компиляции: целевой тип этого выражения должен быть функциональным интерфейсом. public void skipData() { List<Book> bookList =...
5256 просмотров
schedule 15.07.2022

Может ли Java 8 реализовать интерфейс «на лету» для ссылки на метод?
Я изучаю новые возможности Java 8. Я играю с разными примерами и обнаружил странное поведение: public static void main(String[] args) { method(Test::new); } static class Test{ } private static void method(Supplier<Test>...
3332 просмотров

LambdaConversionException при смешивании ссылки на метод и дженериков
Код ниже компилируется нормально, но выдает исключение во время выполнения. Это ожидаемое поведение и почему? Код: public static void main(String[] args) { A<Integer> a = new A<> (); System.out.println(a.min()); //prints null...
1199 просмотров
schedule 06.04.2023

Почему «T.super.toString()» и «super::toString» используют синтетический метод доступа?
Рассмотрим следующий набор выражений: class T {{ /*1*/ super.toString(); // direct /*2*/ T.super.toString(); // synthetic Supplier<?> s; /*3*/ s = super::toString; // synthetic /*4*/ s = T.super::toString; //...
657 просмотров

Статическая ссылка (с ::) на метод, возвращающий интерфейс
У меня есть несколько предопределенных статических «процессоров», реализующих один и тот же метод, например: default double process(double num){ Образец : public class Test { public static void main(String[] args) {...
1126 просмотров

Ссылки методов на необработанные типы вредны?
Код ниже содержит ссылку на Enum::name (обратите внимание на отсутствие параметра типа). public static <T extends Enum<T>> ColumnType<T, String> enumColumn(Class<T> klazz) { return simpleColumn((row, label) ->...
786 просмотров
schedule 07.08.2022

Внешний аргумент для ссылки на метод в Java 8
Я хочу передать внешний параметр в ссылку на метод: String prefix = "The number is :"; numbers.forEach(Main::printWithPrefix); private static void printWithPrefix(Integer number) { System.out.println(number); } Я понятия не имею, как это...
1505 просмотров
schedule 16.10.2022

Ссылки на методы, как в Java 8 в Scala
В этом классе Java: import java.util.function.*; public class T { public String func(String a) { System.out.println("There we go: " + a); return a; } public static void main(String... args) { final...
2530 просмотров
schedule 03.01.2023

Groovy-эквивалент оператора Java 8 :: (двойное двоеточие)
Что было бы эквивалентно Java 8 :: ( оператор двойного двоеточия ) в Отличный? Я пытаюсь перевести этот пример на https://github.com/bytefish/PgBulkInsert . Но часть сопоставления работает не так, как в Java 8: public PersonBulkInserter()...
6067 просмотров
schedule 17.03.2023

Когда работают ссылки на методы?
Ссылки на методы не работают с нестатическими методами AFAIK. Я пытался использовать их следующим образом Arrays.stream(new Integer[] {12,321,312}).map(Integer::toString).forEach(System.out::println); Что привело к ошибке компиляции, как...
128 просмотров

Concat Stream of String и Integer
Я изучаю Stream, и во время одного из таких практических занятий я пытался объединить 2 потока разных типов String и Integer с помощью кода ниже: Stream<String> fruitStream = Stream.of("Apple", "Mango", "Muskmalon", "Guvava");...
483 просмотров

параметры в справочнике по методу
Можно ли передать параметры, используя ссылку на метод? Например, мне нужно создать TreeMap , но используя reverseOrder() . Существует ли что-то вроде TreeMap::new(reverseOrder()) ?
5216 просмотров
schedule 08.05.2024

Краткий способ составления ссылок на методы Java?
Учитывая некоторые функции метода Java 8: class Foo { Bar getBar() {} } class Bar { Baz getBaz() {} } Композиция из двух аксессоров выглядит так: Function<Foo, Bar> getBarFromFoo = Foo::getBar; Function<Bar, Baz> getBazFromBar...
630 просмотров

Java 8 - как объявить ссылку на метод для несвязанного нестатического метода, который возвращает void
Вот простой класс, иллюстрирующий мою проблему: package com.example; import java.util.function.*; public class App { public static void main(String[] args) { App a1 = new App(); BiFunction<App, Long, Long> f1 =...
395 просмотров

Почему вывод типов не работает одинаково для лямбда-выражений и ссылок на методы в Java?
Код не должен компилироваться, но компилируется! public class MyClass { ........... private void setEndDateOfValidStatusToCurrentTime(List<LifecycleStatus> oldStatuses, Date currentTime) { oldStatuses.stream()...
56 просмотров

Как я могу подавить ссылку на метод rawType?
У меня метод выглядит так. public <E extends Enum<E> & Some> void setOther(final E some) { setOther(ofNullable(some).map(e -> e.name()).orElse(null); } Теперь IntelliJ предлагает использовать ссылку на метод для части...
191 просмотров
schedule 21.08.2022

Приведение ссылки Java к методу, возвращающему значение, в один возвращающий `void`
Правила приведения JLS кажутся довольно запутанными в этом отношении: правильно ли приводить ссылку на метод, возвращающий некоторое значение, к ссылке, принимающей те же типы аргументов, но возвращающей void ? Я думаю , что это нормально, потому...
268 просмотров
schedule 02.11.2022

В ссылках на методы конструктора разница между использованием параметров универсального типа и нет?
Я читаю «Эффективную Java 3» и заметил этот код в статье 43: «Предпочитайте ссылки на методы вместо лямбда-выражений»: TreeMap<K,V>::new Обратите внимание на параметры типа. Я всегда просто делал: TreeMap::new Я использую...
679 просмотров