Выполнить функциональный интерфейс как лямбда - PullRequest
0 голосов
/ 09 мая 2019

Я не уверен, что название действительно соответствует тому, что я хочу передать. Позвольте мне объяснить это на примере:

public static void test() {
    Consumer<String> c = System.out::println;
    c.accept("hello world");
}

Я хочу знать, есть ли более «изощренный» способ выполнения функционального интерфейса, например, c("hello world").

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 09 мая 2019

Нет, это невозможно. Изначально Java не была разработана для того, чтобы быть функциональным языком, поэтому современные функциональные возможности Java, к сожалению, кажутся немного «заколоченными». С другой стороны, некоторые из более современных языков, таких как Kotlin (или немного менее современные, такие как Scala), do позволяют вам вызывать функциональный интерфейс (или эквивалент в этом языке), как если бы он был простой метод.

1 голос
/ 09 мая 2019

Нет . Вы вызываете это, вызывая метод, как в вашем примере.

...