2011-10-17 14 views
14

Ho problemi ad accedere ai campi di un oggetto scala da java.Accesso ai campi scala oggetto da java

Scala:

object TestObject { 
    val field = 5 
} 

Java:

public class JavaTest 
{ 
    public static void main(String[] args) 
    { 
    int i = TestObject.field; 
    } 
} 

Errore:

[error] JavaTest.java: cannot find symbol 
[error] symbol : variable field 
[error] location: class TestObject 
[error]  int i = TestObject.field; 
+0

Per vedere tutti i membri pubblici utilizzano: 'javap -classpath '. Per esempio. 'javap -classpath target/scala-2.9.1.final/classes TestObject' – dsg

risposta

16

campi Scala sono variabili private con un getter con lo stesso nome per preservare l'immutabilità.

public class JavaTest 
{ 
    public static void main(String[] args) 
    { 
    int i = TestObject.field(); 
    } 
}