ホームページ  >  記事  >  Java  >  Java の「[Ljava.lang.Object;」クラス タイプ エンコーディングをデコードするにはどうすればよいですか?

Java の「[Ljava.lang.Object;」クラス タイプ エンコーディングをデコードするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-19 17:42:03936ブラウズ

How Do I Decode Java's

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。