Scala:在Scala中使用Java中的多个构造函数

时间:2013-08-20 14:22:52

标签: java scala constructor

我想在Scala中使用Jar,这是用Java编写的。

有些类有多个构造函数,例如:

public LabeledDock(Parent<? super Labeled> parent, int index, Class<?> subtype){}

public LabeledDock(Parent<? super Labeled> parent, Class<?> subtype)

所以第一个构造函数有3个输入,第二个只有2个输入。

如果我想以这种方式在Scala中使用这些构造函数:

val button = new LabeledDock(scene.asParent(), classOf[Button])

Scala告诉我“对重载定义的模糊引用”

如果我使用

val button = new LabeledDock(scene.asParent(), 0, classOf[Button])

一切正常。 所以我认为第一个变量声明Scala不知道他应该使用哪个构造函数,因为它们彼此相似。如何使用仅有2个输入的构造函数而不是添加第三个输入。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

现在,在同事的帮助下,我已经解决了这个问题。

而不是

classOf[Button]

我必须使用

classOf[Button].asInstanceOf[Class[_]]

这样就可以了。