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