我想在参数中接收一个函数并用一个参数调用它:
public static <T> T foo(Callable<T> func)
{
return func.call("bar");
}
但它调用不带任何参数。关于我该怎么做的任何想法?
无论我搜索多少,我都找不到任何对我有帮助的东西......
我想在参数中接收一个函数并用一个参数调用它:
public static <T> T foo(Callable<T> func)
{
return func.call("bar");
}
但它调用不带任何参数。关于我该怎么做的任何想法?
无论我搜索多少,我都找不到任何对我有帮助的东西......
ACallable<T>
只有一种方法:T call()
.
如果你想要不同的东西,你将需要使用不同的参数类型,例如:
public interface CallableWithString<T> {
T call(String arg); //Assuming you want a string argument
}
然后你的函数可以做:
public static <T> T foo(CallableWithString<T> func) {
return func.call("bar");
}
中定义的call
方法Callable
没有定义任何参数,因此您无法向其传递任何内容。
根据您想要做什么,您可以为此编写自己的界面:
public interface CallableWithParameters<T> {
public T call(Object... arguments);
}
然后你用不同的方式调用它:
call();
call(someObject);
call("someString", 42);