解碼Java 中的類別類型資訊
我們常常會遇到類似「[Ljava.lang.Object;」這樣的字串。在 Java 中使用類別類型時。了解如何解碼此編碼對於識別物件的實際類型至關重要。
此編碼遵循 Class.getName() 中記錄的特定命名方案。當類別物件表示陣列類型時,其名稱由其元素類型名稱加上方括號「[」組成。例如,「[Ljava.lang.Object;」代表Object[],它是一個物件陣列。
下表總結了常見元素類型的編碼:
Element Type | Encoding |
---|---|
boolean | Z |
byte | B |
char | C |
double | D |
float | F |
int | I |
long | J |
short | S |
Class or interface | Lclassname; |
陣列不會重寫繼承自Object的toString()方法,它傳回一個格式為:
getClass().getName() + '@' + Integer.toHexString(hashCode())
的字串,這就是為什麼陣列的toString() 會傳回我們遇到的特定格式的字串,包括陣列括號和類別名稱編碼。
雖然不鼓勵依賴 toString() 來解碼數組類型,但 Java 提供了獲取類型資訊的替代方法。對物件呼叫 getClass() 將傳回可用於反射目的的 Class 物件。此外,java.util.Arrays 為原始數組和 Object[] 提供了 toString() 的重載,從而更容易獲得人類可讀的數組內容表示。
以上是如何解碼 Java 的「[Ljava.lang.Object;」類別類型編碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!