我想在Scala中使用用Java编写的构造函数。
构造函数以这种方式声明:
public <SUBCLASS extends Node> NodeDock(Parent<? super Node> parent, Class<SUBCLASS> cls, LookupCriteria<SUBCLASS>[] criteria) {
this(parent, cls, 0, criteria);
}
所以,如果我想使用它:
val task = new NodeDock(scene.asParent(), classOf[FXTaskStackElement].asInstanceOf[Class[_]], new LookupCriteria[FXTaskStackElement]() {...}
Scala总是给我一个错误,他无法找到具有这些参数的合适的constrcutor。 那么如何才能为LookupCriteria获取FXTASS的FXTASSStackElement?
编辑: 在Java中,我会像这样称呼这个构造函数,它工作正常:
task = new NodeDock(scene.asParent(), FXTaskStackElement.class, new LookupCriteria<FXTaskStackElement>() {...})
答案 0 :(得分:1)
您为什么使用classOf[FXTaskStackElement].asInstanceOf[Class[_]]
而不只是classOf[FXTaskStackElement]
?由于您的第二个参数是Class[_]
,因此没有合适的SUBCLASS
。