Sto provando a inserire un codice Scala nella mia app Java esistente. (Quindi, detto, voglio un po 'più divertente).Come si chiama un metodo Scala singleton da Java?
creo una roba Singleton a Scala
ScalaPower.scala
package org.fun
class ScalaPower
object ScalaPower{
def showMyPower(time:Int) = {
(0 to time-1).mkString(", ")
}
}
Ora, all'interno OldJava.java
class OldJava {
public void demo(){
System.out.println(?)
}
}
Cosa devo compilare ?
in modo che Java chiamerà il metodo showMyPower? Ho provato sia org.fun.ScalaPower.showMyPower(10)
e org.fun.ScalaPower.getInstance().showMyPower(10)
ma nessuno funziona.
(decompilare il file di classe utilizzando Jad mi mostra nulla, ma il codice sciocchezza.)
Edit ho rimuovere la dichiarazione class ScalaPower
e scala producono il metodo statico come previsto. (chiamare a org.fun.ScalaPower.showMyPower(10)
funziona solo).
chiedo se è un bug nel compilatore Scala o no
Che dire 'org.fun.ScalaPower.showMyPower (10)'? – OscarRyz
Ouch, mio male. Hai dimenticato di cambiare lo spazio dei nomi. Aggiornata la domanda già. Grazie. –
A proposito, puoi scrivere "0 fino all'ora" invece di "0 all'ora-1". –