如何创建Function1对象以在finagle的Java中的Future对象的flatMap方法中使用?
试过这个:
Function1<String, String> f = new Function1<String, String>() {
@Override
public String apply(String s) {
return null;
}
};
但它不起作用:
错误:(22,73)java:不是抽象的,不会覆盖抽象方法,而是scala.Function1中的$ mcVJ $ sp(scala.Function1)
答案 0 :(得分:0)
为了完整起见,这是我上面两个月的评论的答案。
首先进行一些进口:
import scala.Function1;
import scala.runtime.AbstractFunction1;
现在您只需要定义apply
方法:
Function1<String, String> f = new AbstractFunction1<String, String>() {
public String apply(String s) {
return s;
}
};
如果您正在使用Finagle,Twitter's Util library也提供了类似的帮助类:
import com.twitter.util.Function;
import scala.Function1;
然后:
Function1<String, String> f = new Function<String, String>() {
public String apply(String s) {
return s;
}
};
后一个选项可能更好 - 我从未真正喜欢明确使用scala.runtime
中的内容。