有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我想在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) 个答案

  1. # 1 楼答案

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

    而不是

    classOf[Button]
    

    我必须使用

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

    有了这个,效果很好