繁体   English   中英

如何从Java调用具体的Scala特征方法?

[英]How to invoke a concrete Scala trait method from Java?

我有一个Java / Scala混合Maven项目。 我需要重用鞍方法make被具体定义为所谓的特质的一部分Index 如果有任何帮助,则在此处定义该方法。 我尝试使用Index.makeIndex$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM