いくつかの一般的な方法で反射

1.1取得クラスのインスタンス(三種類)。

-クラスc =クラス名の.class
   -クラスc = Class.forNameの( "クラスの完全修飾クラス名");
    -クラスCは=オブジェクト.getClass();
1
2
。3
1.2は、オブジェクトのクラス名を取得します。

 -文字列クラス名= c.getName(); // 完全修飾クラス名を取得
    -文字列クラス名= c.getSimpleName(); // 単純な名前を取得する
1。
2
1.3フィールド(4つの方法)を取得します:

-フィールドのフィールド= c.getField(「属性名」); //このメソッドは、public属性名属性によって得ることができる
    -フィールド[]フィールド= c.getFields( ); // 配列のすべてのパブリックプロパティを取得
    -フィールドのフィールドを= c.getDeclaredField( "属性名"); //取得するプロパティクラス、プライベート/保護など、
1。
2
3。
1.4、情報フィールドを取得

-文字列名= field.getName(); // プロパティ名を取得
    -クラスタイプ= field.getType(http://www.amjmh.com/v/) <?>; // プロパティの種類を取得
    -オブジェクトの値を= //フィールドの値は、OBJオブジェクト属性取得、Field.get(OBJ)
    - field.set(OBJ、オブジェクト値); //属性フィールドオブジェクトobj割当値に
1
2
。3
。4
1.5、アクセシビリティを提供

- (真)setAccessible; //を使用することができ、アクセス修飾子が変更され、
//デフォルトはfalseですが、唯一の公共の動作を変更し、変更の操作に忠実プライベート設定
---------- -----------

おすすめ

転載: www.cnblogs.com/hyhy904/p/11335124.html