指定したクラスから情報を取得:java.lang.reflectAdvertisementリフレクション
java.lang.reflect パッケージを使用する。
コンストラクタの取得
getConstructors() : コンストラクタをすべて取得
getDeclaredConstructors() : アクセス可能なコンストラクタを取得 例 // インポート import java.lang.reflect.*; public class GetConstructor{ public static void main(String[] args){ // 対象クラスの設定 try{ cls = Class.forName(args[0]); // cls = Class.forName("java.lang.Math"); }catch(Exception e){ e.printStackTrace(); } // Constructor[] cons = cls.getConstructors(); Constructor[] cons = cls.getDeclaredConstructors(); for(int i = 0; i < cons.length; i++){ System.out.println(cons[i].toString()); } } }実行 >java GetConstructor java.lang.StringBuffer public java.lang.StringBuffer(java.lang.String) public java.lang.StringBuffer() public java.lang.StringBuffer(int) フィールドの取得
getFields() : フィールドをすべて取得
getDeclaredFields() : アクセス可能なフィールドを取得 例 // インポート import java.lang.reflect.*; public class GetFields{ public static void main(String[] args){ // 対象クラスの設定 try{ cls = Class.forName(args[0]); // cls = Class.forName("java.lang.Math"); }catch(Exception e){ e.printStackTrace(); } Constructor[] cons = cls.getFields(); // Constructor[] cons = cls.getDeclaredFields(); for(int i = 0; i < cons.length; i++){ System.out.println(cons[i].toString()); } } }実行 > java GetFields java.lang.Integer public static final int java.lang.Integer.MIN_VALUE public static final int java.lang.Integer.MAX_VALUE public static final java.lang.Class java.lang.Integer.TYPE メソッドの取得
getMethods() : メソッドをすべて取得
getDeclaredMethods() : アクセス可能なメソッドを取得 例 // インポート import java.lang.reflect.*; public class GetConstructor{ public static void main(String[] args){ // 対象クラスの設定 try{ cls = Class.forName(args[0]); // cls = Class.forName("java.lang.Math"); }catch(Exception e){ e.printStackTrace(); } Constructor[] cons = cls.getMethods(); // Constructor[] cons = cls.getDeclaredMethod(); for(int i = 0; i < cons.length; i++){ System.out.println(cons[i].toString()); } } }実行 >java GetMethod java.lang.Object public native int java.lang.Object.hashCode() public final native java.lang.Class java.lang.Object.getClass() public final void java.lang.Object.wait() throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public boolean java.lang.Object.equals(java.lang.Object) public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() public java.lang.String java.lang.Object.toString() Advertisement |
ショートカット・634・このカテゴリのトップページに戻る ・634labs UIコレクションギャラリー サイト検索Y!ログール |