JAVA開発メモ
リフレクション のバックアップ(No.1)
 

[トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]


java.lang.reflectパッケージ

クラスおよびオブジェクトについてのリフレクション情報を取得するためのクラスおよびインタフェースを提供します。

java.lang.reflect.Methodクラス

クラスまたはインタフェース上の単一のメソッドに関する情報およびアクセスを提供します。

staticメソッドの実行

引数が配列の場合

 String[] array = { "A", "C", "B" };
 
 // クラス名よりClassオブジェクトを生成
 Class cls = Class.forName("java.util.Arrays");
 // Classオブジェクトからメソッド名を指定してMethodオブジェクトを取得
 Method method = 
     cls.getDeclaredMethod("sort", new Class[] { Object[].class });
 // 取得したMethodオブジェクトに引数を渡して実行
 method.invoke(null, new Object[] { array });
 
 // 実行結果 -> ABC
 System.out.println(array[0] + array[1] + array[2]);

引数がプリミティブの場合

 Class cls = Class.forName("java.lang.Integer");
 Method method1 =
     cls.getDeclaredMethod("toString", new Class[] { int.class });
 Method method2 =
     cls.getDeclaredMethod("toString", new Class[] { int.class, int.class });
 // 数値をそのまま文字列化 -> "255"
 String string1 =
     (String) method1.invoke(null, new Object[] { new Integer(255) });
 // 数値を16進数で文字列化 -> "ff"
 String string2 = 
     (String) method2.invoke(null, new Object[] { new Integer(255), new Integer(16) });

トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.005 sec.