*

【java】 リフレクションの使い方

公開日: : 最終更新日:2014/01/30 java

instanceメンバ

・メソッド

import java.lang.reflect.Field;
import java.lang.reflect.Method;

MyObject obj = new MyObject();
Method method;

//instanceメソッド引数なし
method = objgetClass().getDeclaredMethod("methodName", new Class[]{});
method.setAccessible(true);
method.invoke(obj);

//instanceメソッド引数あり
method = MyClass.class.getDeclaredMethod("methodName", new Class[]{
    int.class,
    byte[].class,
    Object.class
});
method.setAccessible(true);
method.invoke(obj, new Object[]{
    1,
    new byte[]{}
    new Object()
});

・変数

MyObject obj = new MyObject();
Field field;

field = obj.getClass().getField("fieldName");
field.set(obj, new Integer(1));
int n = (Integer) field.get(obj);

staticメンバ

・変数

Field field;

field = MyObject.class.getField("fieldName");
field.set(null, new Integer(1));
int n = (Integer) field.get(null);

・メソッド


import java.lang.reflect.Field;
import java.lang.reflect.Method;

Method method;

//staticメソッド引数なし
method = MyClass.class.getDeclaredMethod("methodName", new Class[]{});
method.setAccessible(true);
method.invoke(null);

//staticメソッド引数あり
method = MyClass.class.getDeclaredMethod("methodName", new Class[]{
    int.class,
    byte[].class,
    Object.class
});
method.setAccessible(true);
method.invoke(null, new Object[]{
    1,
    new byte[]{}
    new Object()
});

関連記事

no image

【java】Calendar : 日付や時間を扱う

Locale locale = Locale.getDefault(); Calendar c

記事を読む

no image

【java】正規表現

基本的な使い方 //●コンストラクタ String regExp = "[^0

記事を読む

no image

【java】【objective-c】Java vs Objective-C 言語比較

Java人間がObjective-Cを勉強するにあたって一番苦労するのは文法に関するネーミングの違い

記事を読む

no image

【java】可変長引数 String… args

javaのメソッドで引数の型の後ろにドット「.」を3つ続けて書くと可変長引数になります。 これ

記事を読む

no image

【java】HashMapの全てのキーと値を取得する

HashMap<String,String> hm = new HashMap<

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

no image
知らないと損をする6つのライセンスまとめ

オープンソースやフリーウェア、フリー素材などが巷に溢れ、それらを利用す

no image
ガリレオ:ニュースブラウザをリリースしました。

概要 ガリレオはニュースを読んだり、検索する機能に特化したブラウザア

no image
【android】Activityとプロセスのライフサイクル

またもやライフサイクル周りでハマったのですが、Androidのライフサ

→もっと見る

PAGE TOP ↑