使用反射可以獲得類中的某個場的transient
? (使用getDeclaredField(..)
)可以使用反射獲得某個類中的瞬態場
9
A
回答
23
是,這是一個普通的字段。您可以檢查它是否是通過瞬時:
Modifier.isTransient(field.getModifiers());
短暫: Java編程語言,指出一個字段是不是對象的序列化形式的一部分的關鍵字。當對象序列化時,其瞬態字段的值不包含在串行表示中,而包含其非瞬態字段的值。
所以沒有邏輯的原因,它不能被反射訪問。這是該字段的價值(有時)被忽略,而不是字段本身。
(順便說一句,是什麼阻礙了你只是想打電話getDeclaredField("yourTransientField")
?)
3
transient
表示該字段不會被序列化。這個領域仍然由班級宣佈,所以這是反思的公平遊戲。
2
在需要序列化的所有對象中,有那些不需要序列化的對象。這就是爲什麼這些對象用關鍵字transient標記的原因。
0
transient
字段與反射無關。該關鍵字僅表示在Java serialization過程中應該跳過一個字段。所以反射可以像訪問其他字段一樣訪問transient
字段。
相關問題
- 1. 如何使用反射來獲得該類的某些字段
- 2. 使用反射來獲取靜態類
- 3. 階反射場類
- 4. 使用反射在java中獲得一個靜態私人hashmap
- 5. 如何獲得使用反射場的地址?
- 6. db4o的類模型瞬態場
- 7. 使用「反射」從另一個類獲得int不起作用
- 8. 瞬態場不空使用HSQLDB
- 9. 是否可以在測試中模擬瞬態場?
- 10. 使用反射獲得「擁有」類中字段的值
- 11. 如何將類(java.lang.Class)轉換爲使用反射獲得的類
- 12. 的addEventHandler使用反射來靜態類
- 13. 我可以使用內部類類型的反射來獲得外部類的實例嗎?
- 14. 如何獲得Java反射以查找可調用函數?
- 15. Java - 使用反射獲取對靜態類的引用
- 16. 如何通過反射來獲取類中某個屬性的「類類型」?
- 17. 可以使用反射來獲取基類中的屬性名稱和值嗎?
- 18. 如何獲得僅具有反射的可實例化的類
- 19. 使用反射獲取MemberInfo的類型
- 20. 如何使用反射獲得泛型類的名稱?
- 21. 使用反射,有沒有辦法獲得超類的字段?
- 22. 獲取參數使用反射的動態方法的類型
- 23. 使用反射捕獲方法狀態
- 24. 是否可以通過反射來獲得組件的評論?
- 25. 科特林反射得到場
- 26. 得到構造場反射在C#
- 27. 使用反射獲取類型的靜態字段值
- 28. 我可以使用反射類型作爲類型參數嗎?
- 29. 你可以在某些對象字段上獲得動態映射嗎?
- 30. 如何獲得C#中派生類的所有父類反射
錯過了第一個代碼塊中的一個parens :) – RCIX 2010-02-13 07:08:20