Oph*_*tan 8 java scala scala-java-interop
我正在尝试实现一个scala函数对象(具体来说 - 与apache spark一起使用)
等效的java类型是scala.Function0
(对于参数少的函数)
除了实现业务逻辑的方法apply()
,我看到我必须实现其他几个方法.
简单的谷歌搜索方法名称没有帮助(我看到了关于tag
应该实现的方法的参考- 但这里的方法名称是不同的.
这是使用这些方法的代码(使用空实现).
private static class functionObject implements Function0<Integer>{
@Override
public Integer apply() {
// TODO Auto-generated method stub
return null;
}
@Override
public byte apply$mcB$sp() {
// TODO Auto-generated method stub
return 0;
}
@Override
public char apply$mcC$sp() {
// TODO Auto-generated method stub
return 0;
}
@Override
public double apply$mcD$sp() {
// TODO Auto-generated method stub
return 0;
}
@Override
public float apply$mcF$sp() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int apply$mcI$sp() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long apply$mcJ$sp() {
// TODO Auto-generated method stub
return 0;
}
@Override
public short apply$mcS$sp() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void apply$mcV$sp() {
// TODO Auto-generated method stub
}
@Override
public boolean apply$mcZ$sp() {
// TODO Auto-generated method stub
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这些方法是什么?它们应该如何实施?是否有一个更清洁的解决方案,将这些添加到任何类?
kir*_*uku 14
Scalas FunctionX
接口是特征,其类型参数是专用的.因为专业化是由scalac完成的,因此javac无法完成,你必须自己实现与专业化相关的所有内容.
Scala提供了抽象类AbstractFunctionX
,可以在Java端轻松实现:
// example Int => Int function
class Z extends scala.runtime.AbstractFunction1<Integer, Integer> {
public Integer apply(Integer i) {
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1726 次 |
最近记录: |