- 2008-10-14 (Tue) 1:01
- プログラミング
初めて知ったのでメモ。
例えば、以下のようなコードがあったとします。
public static void main(String[] args) {
String str = "0";
String[] array = {"1", "2"};
System.out.println(str.getClass());
System.out.println(array.getClass());
}
実行結果は次のようになります。
class java.lang.String class [Ljava.lang.String;
Stringクラスのインスタンスである「str」のClassオブジェクトを文字列化すると、「java.lang.String」と表示されます。
一方、Stringクラスの配列である「array」のClassオブジェクトを文字列化すると、「[Ljava.lang.String;」と表示されます。
どうやら、あるクラスの配列のClassオブジェクトを文字列化すると「[L<クラス名>;」と表示されるようです。(クラス名の最初に「[L」、最後に「;」が付く)
例外のメッセージにもたまに出てくるので、知ってると役に立つかもですね。
Comments:2
- 匿名 08-10-15 (Wed) 9:31
-
JNIの型のシグネチャですね。
http://java.sun.com/j2se/1.3/ja/docs/ja/guide/jni/spec/types.doc.html#16432
このページを見てみると一覧がわかります。 - kadoppe 08-10-16 (Thu) 17:26
-
なるほど!
こんなところにJNIが関わっているのですねー!
教えていただきありがとうございます!
Trackbacks:0
- Trackback URL for this entry
- http://www.kadoppe.net/2008/10/javaclasstostringl.html/trackback
- Listed below are links to weblogs that reference
- [Java]ClassオブジェクトをtoString()した時に表示される「[L○○;」は配列という意味 from CreativeStyle