藉此Java類:斯卡拉的Java不兼容引用靜態字段的類具有相同的名稱作爲靜態內部類
public class Fisk {
public static class A {
}
public static A A = new A();
}
此Java代碼的工作:
Fisk.A a = new Fisk.A();
Fisk.A b = Fisk.A;
但是,從調用它斯卡拉:
val fisk = new Fisk.A()
val strupp = Fisk.A
導致編譯器錯誤:
error: ambiguous reference to overloaded definition,
[INFO] both variable A in object Fisk of type Fisk.A
[INFO] and object A in object Fisk of type object Fisk.A
[INFO] match expected type ?
[INFO] val strupp = Fisk.A
[INFO] ^
[ERROR] one error found
任何人都知道解決這個問題,或者我必須重命名我的靜態字段?
- 安德烈亞斯
您是否嘗試給出明確的類型,例如'val strupp:Fisk.A = Fisk.A'? – Landei 2011-04-29 09:01:45
給出一個明確的類型使它能夠使用Maven編譯,但在IDEA中給出錯誤: 錯誤:A已經定義爲對象A public static A A = new A(); 任何提示? – Andreas 2011-04-29 09:08:56