Il seguente esempio Scala definisce una classe all'interno di un oggetto pacchetto:Uso classe Scala definita in oggetto pacchetto da Java
package com.mycompany
package object test {
class MyTest {
def foo(): Int = {
42
}
}
}
I seguenti tre classi vengono generate:
com/mycompany/test/package.class
com/mycompany/test/package$.class
com/mycompany/test/package$MyTest.class
Il problema sorge quando si cerca utilizzare la classe MyTest
da Java. Penso che dal momento che package$MyTest
contiene un $ nel nome, Java non sta riconoscendo la sua esistenza. Tuttavia, la classe package$
è accessibile.
esecuzione javap
su package$MyTest.class
rendimenti:
Compiled from "Test.scala"
public class com.mycompany.test.package$MyTest {
public int foo();
public com.mycompany.test.package$MyTest();
}
Ho provato l'accesso alla classe utilizzando Eclipse, IntelliJ e Netbeans, senza successo. È possibile utilizzare le classi Scala definite negli oggetti pacchetto da Java?
Questo è utile quando sto scrivendo la classe del pacchetto, ma non quando sto usando una libreria di terze parti. –