我想在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总是给我一个错误,他无法使用这些参数找到合适的构造函数。
那么,如何获取LookupCriteria的FXTaskStackElement的SUBCLASS?
编辑:
在Java中,我会这样称呼该构造函数,效果很好:
task = new NodeDock(scene.asParent(), FXTaskStackElement.class, new LookupCriteria<FXTaskStackElement>() {...})
最佳答案
为什么使用classOf[FXTaskStackElement].asInstanceOf[Class[_]]
而不是classOf[FXTaskStackElement]
?由于第二个参数是Class[_]
,因此没有合适的SUBCLASS
。
关于java - Scala:在Scala中将Java构造函数与子类一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18375684/