java - Scala:在 Scala 中使用来自 Java 的多个构造函数

标签 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 个输入的构造函数而不是添加第三个输入。

感谢您的帮助!

最佳答案

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

代替

classOf[Button]

我必须使用

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

有了这个,它工作正常。

关于java - Scala:在 Scala 中使用来自 Java 的多个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18337509/

相关文章:

html - 编写媒体查询时出错

linux - 在 Scala Shell 脚本中对命令使用引号

c++ - 使用默认值或使用 setValue 创建构造函数

javascript - 包含 "this"关键字的方法在另一个方法中调用时与分配给局部变量时的工作方式不同

java - XPATH:将 xml 节点插入到另一个 XML 文档中

java - Spring security不解析xml

java - 当使用多个同名的类时,您应该完全限定所有用途,还是仅限定 "rare"的用途?

java - 带有 spring mvc 的 scala 中的 JSR 303 ConstraintValidator

java - 为什么我的 jar 这么大?

c# - 在构造函数参数中和作为属性具有相似名称的变量的常见做法