1

我想在 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 的子类呢?

编辑:在Java中,我会这样称呼这个构造函数,效果很好:

task = new NodeDock(scene.asParent(), FXTaskStackElement.class, new LookupCriteria<FXTaskStackElement>() {...})
4

1 回答 1

1

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

于 2013-08-22T12:05:32.307 回答