1、Classオブジェクトは、メンバ変数を取得します:
クラスClassの一般的な方法:
Personクラスを作成します:
パッケージpers.reflect.person。 パブリック クラス人{ プライベート文字列名; プライベート int型の年齢; 公共の文字列の趣味。 公共の文字列の高さ。 保護された文字列のセックス。 文字列のアドレス。 パブリック人(){ } 公共人(文字列名、int型の年齢){ この .nameの= 名前。 この .age = 年齢; } @Override パブリック文字列のtoString(){ リターン " 人[NAME = " +名+ 」、年齢=" +年齢+ " 、趣味= " + 趣味 + " 、高さ= " +高さ+ " 、性別= " +性別+ " 、アドレス= " + アドレス + " ] " ; } パブリック文字列のgetName(){ 戻り名。 } 公共 ボイドのsetName(文字列名){ この .nameの= 名; } 公共 のint getAge(){ 戻り年齢; } 公共 ボイド setAge(int型の年齢){ この .age = 年齢; } }
インポートをjava.lang.reflect.Field; 輸入pers.reflect.person.Person。 パブリック クラスReflectDemo { 公共 静的 ボイドメイン(文字列[]引数)はSecurityExceptionが、スロー 持たないNoSuchFieldException、はIllegalArgumentException、 IllegalAccessExceptionが{ クラスc =人数。クラス。 システム。アウト .println(" れるGetFields()、获取公共的成员变量:" ); フィールド[]フィールド = c.getFields()。 用(:フィールドフィールドフィールド){ システム。アウト .println(フィールド); } システム。OUT .println(" のgetField()、指定されたパブリックメンバ変数を取得する:" ); フィールド、hobbyField = c.getField(" 趣味" ); システム。OUT .println(hobbyField); システム。OUT .println(" getDeclaredFields()は、改質に関わらず、メンバ変数のすべてを取得する。」) フィールドを、[] fields1 = c.getDeclaredFields(); 用(フィールド、フィールド:fields1){ 。システムOUT ; .println(フィールド) } 。システムOUT .println(" 指定されたプライベートメンバ変数を取得します" ); フィールド、nameField = c.getDeclaredField(" 年齢" ); システム。OUT .println(nameField); } }
図2に示すように、フィールドのクラスの一般的な方法:
(1)戻り変数のタイプ:
(2)プロパティの名前を返します。