java中的finagle - Function,Function1等

时间:2014-04-02 16:58:34

标签: java scala finagle twitter-util

如何创建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)

1 个答案:

答案 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中的内容。