5
A
回答
5
0
0
看看這個代碼
class A<T> {
protected T field1;
}
class B extends A<String> {
public char field1;
public static void main(String[] args) {
A a = new B();
a.field1 = 12442;
}
}
運行沒有任何異常,如果 字段1 overrided,它應該拋出一個異常,但它並不
而且這種運行沒有任何異常
class A<T> {
protected T field1;
}
class B extends A<Character> {
public char field1;
public static void main(String[] args) {
A a = new B();
a.field1 = 12442;
}
}
這是不可能
0
Java語言(JLS)不允許它,但是Java字節碼(JVMS)確實是
Oracle JDK 1.8.0_45甚至依靠它來實現assert
。例如:
public class Assert {
static final int[] $assertionsDisabled = new int[0];
public static void main(String[] args) {
System.out.println(int.length);
assert System.currentTimeMillis() == 0L;
}
}
生成兩個Oracle JDK 1.8.0_45
,一個明確的(int[]
)和一個合成的(bool
),並且是能夠愉快地在它們之間進行區分。但是,如果我們宣佈:
static final boolean $assertionsDisabled = false;
它會失敗,編譯:
the symbol $assertionsDisabled conflicts with a compile synthesized symbo
詳情請參閱https://stackoverflow.com/a/31355548/895245。
可能的理由,爲什麼這是不可能的
的問題是,它不會是可以確定字段的類型。考慮:
void f(int i) { System.out.println("int"); }
void f(float i) { System.out.println("float"); }
int i;
float i;
// Which overridden method is called?
void m() { f(i); }
相關問題
- 1. EJB:將數據庫列字段映射到另一個字段類型
- 2. 將數據庫字段類型從文本重載到SS_DateTime
- 3. Haskell數據字段作爲類型類的一個實例
- 4. 如何在另一個自定義字段類型上將分類與自定義字段類型相關聯?
- 5. 轉到 - 如何將struct字段的數據類型定義爲另一個struct
- 6. 將自動編號字段更改爲數字數據類型
- 7. 如何將數據行字段轉換爲泛型類型?
- 8. Excel宏將字段數據類型字符串更改爲長
- 9. MySQL字段類型
- 10. MySQl字段類型
- 11. CallLog - 字段類型
- 12. 將一段字符串轉換爲一段自定義類型
- 13. 將Django模型類名變爲字段
- 14. 將字段從一個模型保存到另一個模型字段
- 15. 每個模型字段類型可能的表單字段類型
- 16. 什麼數據類型是一個空的數據庫字段?
- 17. Rails不同類型的模型有不同的字段數和字段類型
- 18. jOOQ選擇字段數據類型
- 19. 字段數據類型/驗證問題
- 20. 無法更新字段數據類型
- 21. Oracle單值字段數據類型
- 22. 必填字段上collection_select類型字段
- 23. 值類型字段是引用類型?
- 24. 結合PySpark數據幀數組類型的字段爲單數組類型字段
- 25. 將文本數據類型字段轉換爲日期時間
- 26. 如何在插入時將字段轉換爲數據類型
- 27. 訪問Java中另一個類的數據成員的字段
- 28. SharePoint - 什麼類型是數字字段
- 29. 用Java反射顯示字段類型
- 30. 創建一個類型爲IList <>的類字段?
爲什麼你不去試試看看會發生什麼。 – 2012-07-13 16:05:20