Javaの簡単な反射運動

昨夜は、反射の下に来る反射Javaは、演習を行う見て、

ケース任意のクラスのオブジェクトを作成し、これらのいずれかの方法を実行することができ、「フレームワーク」を書きます。

前提:クラス内の任意のコードを変更することはできません、あなたが任意のクラスのオブジェクトを作成することができ、任意の方法を行うことができます

実装: 1、2プロファイル、反射

ステップ:

(1)単純なPersonクラスを作成します。

パブリッククラスPerson {
プライベート文字列名;
プライベートint型の年齢;
公共パーソン(文字列名、int型の年齢){
this.name =名;
this.age =年齢;
}
ます。public voidアウト(){
System.out.printlnは( "姓名:" +名+ "年龄:" +年齢)。
}
}

(2)プロファイルpro.propertiesを作成します

クラス名= testfs.Person
方法=アウト

(3)フレームワーククラスを作成FsKj

{クラスFsKj公共
@Test
ます。public void testFsKj(){
//プロパティファイルを読み込み
、プロパティのプロパティを=新しい新しいプロパティ();
文字列のClassName = NULL;
文字列の方法、= NULL;
試し{
//ファイルのフィールドの取得
は、Properties.load(新しいFileInputStreamを( "SRC / pro.properties"));
クラス名= Properties.getProperty( "クラス名");
メソッド、Properties.getProperty =( "方法")
のSystem.out.println( "取得したファイルのフィールド:" +「カテゴリ: "+クラス名+"方法「方式、+);
//作成バイトコードオブジェクト
クラス= classp Class.forNameの(クラス名);
取得//コンストラクタ
コンストラクタコンストラクタ= classp.getConstructor(String.classをint.classを);
/ /オブジェクトの作成
対象者= constructor.newInstance( "ジョー・スミス"、20);
// Getメソッド
方法メソッド= classp.getMethod(方法)
//运行方法
method.invoke(人)。
System.out.println( "SUCCESS");

}キャッチ(IOExceptionを電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}キャッチ(ClassNotFoundExceptionが電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}キャッチ(ないNoSuchMethodException電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}キャッチ(SecurityExceptionが電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}キャッチ(ないInstantiationException電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}キャッチ(IllegalAccessExceptionが電子){
// TODO自動生成されたcatchブロックの
e.printStackTrace();
}キャッチ(例外:IllegalArgumentException電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}キャッチ(にInvocationTargetException電子){
// TODO自動生成キャッチブロック
e.printStackTrace();
}
}

}

(4)メソッドは@Testクラスにアノテーションを追加します

(5)プロセスを実行します

結果:

フィールドを提出するには、Get:クラス:testfs.Person方法:アウト
名:ジョー・スミス年齢:20
SUCCESS

おすすめ

転載: www.cnblogs.com/2019z/p/11422508.html