Как вызвать функцию, переданную в качестве аргумента в Java? - PullRequest
1 голос
/ 01 марта 2020

Ну, это похоже на основу c, и я много искал, что не так с кодом или как правильно это сделать. Я пытаюсь просто использовать функцию, которая передается в качестве аргумента.

import java.util.function.Function;

public class Anonymous {
    public static void main (String[] args) {
        System.out.println("Hi");
    }

    public static void useFunction (Function<Integer, Boolean> fun) {
        boolean a = fun(10);
    }
}

Он говорит мне, что «метод fun (int) не определен для типа Anonymous».

Ответы [ 2 ]

4 голосов
/ 01 марта 2020

Функция - это функциональный интерфейс с методом apply, поскольку ваша функция принимает Integer в качестве аргумента и возвращает Boolean, вы должны вызвать метод apply, передав аргумент

Это функциональный интерфейс, функциональный метод которого применяется (Object).

boolean a = fun.apply(10);
1 голос
/ 01 марта 2020

Взгляните на JavaDo c Function<T, R>. Вы неправильно интерпретируете использование функции с JavaScript - это все еще Java. Этот интерфейс имеет метод Function::apply, который применяет эту функцию к данному аргументу.

public static void useFunction (Function<Integer, Boolean> fun) {
    boolean a = fun.apply(10);
}
...