我想在 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 个输入的构造函数而不是添加第三个输入。
感谢您的帮助!
最佳答案
现在,在同事的帮助下,我已经解决了这个问题。
代替
classOf[Button]
我必须使用
classOf[Button].asInstanceOf[Class[_]]
有了这个,它工作正常。
关于java - Scala:在 Scala 中使用来自 Java 的多个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18337509/