Как я могу использовать ссылочный метод в UnaryOperator Java 8 - PullRequest
0 голосов
/ 05 декабря 2018

В настоящее время у меня есть UnaryOperator как этот

UnaryOperator<Object> defaultParser = obj -> obj;

Я не знаю, смогу ли я использовать ссылку на метод в таких операциях.Пример:

UnaryOperator<String> defaultParser = String::toString;

Но с помощью общего способа, а не только String.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Да, вы можете использовать UnaryOperator.identity() как:

UnaryOperator<Object> defaultParser = UnaryOperator.identity();

, который определяется с помощью лямбда-выражения как

static <T> UnaryOperator<T> identity() {
    return t -> t;
}
0 голосов
/ 05 декабря 2018

Если вы просто хотите избежать лямбда-выражения, UnaryOperator имеет статический identity() метод:

UnaryOperator<Object> defaultParser = UnaryOperator.identity();

Если вам конкретно нужна ссылка на метод (почему ??)Вы можете определить метод в своем классе

public static <T> T identity(T t) {
    return t;
}

Тогда вы сможете использовать его как ссылку на метод:

UnaryOperator<Object> defaultParser = MyClass::identity;
...