2015-05-28 24 views
2

我想打電話給在Java中的switch case塊用Scala編寫的對象,但我得到一個錯誤:無法調用Scala的對象在一個開關的情況下在java中

case expressions must be constant expressions 

在斯卡拉對象:

object Test { 
    val A = "a" 
    val B = "b" 
} 

而且在Java中,我有以下的代碼塊:

String op = "a" 
switch(op) { 
    case Test.A(): System.out.println("A"); break; 
    case Test.B(): System.out.println("B"); break; 
} 

Test.A翻譯在Java將是public static final A,所以我不知道爲什麼編譯器能夠兼容。

回答

2

使用Test.ATest.B參考變量,Test.A()指方法

+0

如果我只叫Test.A在java中我得到Test.A不能被解析爲一個類型,但如果我用Test.A()有用.. – user1917028

相關問題