我正在使用ASM-5讀取類文件並生成UML圖的項目。我在測試中遇到了問題,看看我們是否正確閱讀。我正在測試這個String類。文檔中顯示的唯一字段是CASE_INSENSITIVE_ORDER。這似乎很腥,但我寫了我的測試,以檢查該字段是否僅讀取了該字段,並且出現了5個字段:value:char [],hash:int,serialVersionUID:long,serialPersistentField:ObjectStreamField和CASE_INSENSITIVE_ORDER:比較。java有什麼私人領域?
這4個額外字段來自哪裏,爲什麼他們不在oracle文檔中?當我嘗試使用反射來查看字符串類的字段時(我只能看到CASE_INSENSITIVE_ORDER),我也無法訪問它們。這似乎是應該更好記錄的東西。
爲什麼'private'字段在文檔中?它們是實現細節,不是API的一部分。 –
文檔是關於如何使用課程的,因此您不需要在其中包含專用字段。如果你想知道實現細節,你可以看看[代碼](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/lang/ String.java?av=f)。 – azurefrog
另見:[Encapsulation](https://en.wikipedia.org/wiki/Encapsulation_(computer_programming))。 – Powerlord