[英]Scala Function1<T,U> becomes Function1<Object,Object> in Java
[英]finagle in java - Function, Function1 etc
如何在Java中创建finagle的Future对象的flatMap方法中使用的Function1对象?
试过这个:
Function1<String, String> f = new Function1<String, String>() {
@Override
public String apply(String s) {
return null;
}
};
但这不起作用:
错误:(22、73)java:不是抽象的,并且没有覆盖scala.Function1中的抽象方法andThen $ mcVJ $ sp(scala.Function1)
为了完整起见,这是我上面两个月大的评论的答案。
首先是一些进口:
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的Util库还提供了类似的帮助程序类:
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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.