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 中国語 Web サイトの他の関連記事を参照してください。