Scala:在Scala中使用Java构造函数和子类

时间:2013-08-22 08:51:08

标签: java scala constructor subclass

我想在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>() {...})

1 个答案:

答案 0 :(得分:1)

您为什么使用classOf[FXTaskStackElement].asInstanceOf[Class[_]]而不只是classOf[FXTaskStackElement]?由于您的第二个参数是Class[_],因此没有合适的SUBCLASS