Ho un Scala classe:istanziare una classe Scala da Java, e utilizzare i parametri di default del costruttore
class Foo(val x:String = "default X", val y:String = "default Y")
voglio chiamare da Java, ma utilizzando i parametri di default
Passaggio null
non funziona (assegna null
, come previsto)
new Foo(null,null); //both are instantiated as null
Questo trucco ha funzionato per me, ma è brutto, e mi chiedo se ci sia un modo migliore:
Scala
class Foo(val x:String = "default X", val y:String = "default Y") {
def this(x:Object) = this()
}
Java
new Foo(null); //no matter what I pass it should work
Tuttavia vorrei piace sbarazzarsi del trucco di sovraccarico del costruttore e utilizzare un costruttore 0 param
È possibile?