![](/img/trans.png)
[英]Invoke overridden method in scala trait extending java class A, implemented by java class B
[英]How to invoke a concrete Scala trait method from Java?
我有一个Java / Scala混合Maven项目。 我需要重用鞍方法make
被具体定义为所谓的特质的一部分Index
。 如果有任何帮助,则在此处定义该方法。 我尝试使用Index.make
或Index$class.make
从Java调用该方法,但是在两种情况下,我都会收到error: cannot find symbol
编译错误。
有没有办法从Java调用具体的Trait方法?
一个trait
是类似于在某种意义上说,它不是一个具体的构造器的Java接口。
从Scala:
class IndexImpl extends Index[SomeParamtersHere] {}
val x = new ClassImpl
x.make(..)
或使用一个对象:
object Index extends Index {}
Index.make(..)
从Java:
具有具体实现的特性将编译为适当的abstract class
。 如果某些成员没有具体实现,则必须实现它们。
import org.saddle.Index
public class TraitImpl extends Index$class {
}
好的,我找到了答案。 像这样调用它是可行的,但这仅是因为Index特性已经具有可用的Index对象(我之前没有注意到):
Index$.MODULE$.make(rrule, startDate, endDate);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.