我有一个函数,它接受一个函数和字符串作为参数,我想用字符串参数调用这个函数并返回结果。
这样的事情:
public static String mainFunc(Callable func, String s) {
return func.call(s); // Error
}
mainFunc(SomeObject::instanceMethod, s)
但是你可以看到它不起作用。请注意,我不一定需要使用Callable,它可以是任何其他界面。
答案 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
。