调用函数作为带参数的参数传递

时间:2018-03-19 13:55:56

标签: java

我有一个函数,它接受一个函数和字符串作为参数,我想用字符串参数调用这个函数并返回结果。

这样的事情:

public static String mainFunc(Callable func, String s) {
    return func.call(s); // Error
}

mainFunc(SomeObject::instanceMethod, s)

但是你可以看到它不起作用。请注意,我不一定需要使用Callable,它可以是任何其他界面。

1 个答案:

答案 0 :(得分:5)

Callable不带参数。

如果需要String并返回String,则为Function<String, String>(或更常见的是Function<? super String, ? extends String>)。

public static String mainFunc(Function<String, String> func, String s) {
  return func.apply(s);
}

虽然这个方法没有多大意义:只需直接调用func.apply