我想从 Java 代码调用foldLeft
scala 上的方法:Buffer
List<Integer> javaList = new ArrayList<>();
javaList.add(1);
javaList.add(3);
javaList.add(5);
Buffer<Integer> scalaBuffer = JavaConversions.asScalaBuffer(javaList);
scalaBuffer.foldLeft(0, new Function2<Integer, Integer, Integer>() {
@Override
public Integer apply(Integer accumulator, Integer element) {
return carry + element;
}
});
但我收到以下编译器错误:
Multiple markers at this line
- The type new Function2<Integer,Integer,Integer>(){} must implement the
inherited abstract method Function2<Integer,Integer,Integer>.apply$mcVDI
$sp(double, int)
- The type new Function2<Integer,Integer,Integer>(){} must implement the
inherited abstract method Function2<Integer,Integer,Integer>.tupled$mcIDD$sp()
- The type new Function2<Integer,Integer,Integer>(){} must implement the
inherited abstract method Function2<Integer,Integer,Integer>.tupled$mcVJJ$sp()
- The type new Function2<Integer,Integer,Integer>(){} must implement the
inherited abstract method Function2<Integer,Integer,Integer>.apply$mcZDJ
$sp(double, long)
.
.
.
基本上,我必须实现一大堆我不感兴趣的方法。
从 Java 调用单子上的 foldLeft 方法是否有简单的解决方案?
谢谢,约翰
(使用 Scala 2.10-M5 和 JDK 1.7)