この記事では、Java反射のための簡単な実装方法について説明します。参照のためにそれを共有してください。特定の実装方法は次のとおりです。
コードコピーは次のとおりです。パッケージ反射。
java.io.fileをインポートします。
java.io.fileinputStreamをインポートします。
java.io.filenotfoundexceptionをインポートします。
java.io.fileoutputStreamをインポートします。
java.io.ioexceptionをインポートします。
java.util.propertiesをインポートします。
インターフェイスフルーツ{
パブリックアブストラクトvoid eat();
}
クラスのアップルはフルーツを実装します{
public void eat(){
System.out.println( "Eat Apple");
}
}
クラスオレンジは果物を実装します{
public void eat(){
System.out.println( "Eat Orange");
}
}
クラスinit {
public static Properties getPro()は、filenotFoundException、ioExceptionをスローします{
Properties Pro = new Properties();
ファイルf = new file( "Fruit.Properties");
if(f.exists()){
system.out.println( "構成ファイルがあります!");
//構成ファイルからキーバリューペアを読み取ります
pro.load(new FileInputStream(f));
}それ以外{
System.out.println( "構成ファイルなし!");
pro.setProperty( "Apple"、 "Reflect.Apple");
pro.setProperty( "orange"、 "refrect.orange");
pro.Store(new FileOutputStream(f)、 "Fruit Class");
}
Return Pro;
}
}
クラスファクトリー{
public static Fruit getInstance(string className){
果物f = null;
試す {
//反射を介してフルーツインスタンスオブジェクトを取得します
f =(fruit)class.forname(classname).newinstance();
} catch(instantiationexception e){
e.printstacktrace();
} catch(Illegalaccessexception e){
e.printstacktrace();
} catch(classNotFoundException e){
e.printstacktrace();
}
fを返します。
}
}
パブリッククラスこんにちは{
public static void main(string [] args){
試す {
プロパティpro = init.getPro();
フルーツF = Factory.getInstance(pro.getProperty( "Apple"));
if(f!= null){
f.eat();
}
} catch(filenotfoundexception e){
// TODO自動生成キャッチブロック
e.printstacktrace();
} catch(ioException e){
// TODO自動生成キャッチブロック
e.printstacktrace();
}
}
}
結果は次のとおりです。
構成ファイルがあります!
リンゴを食べる
この記事がみんなのJavaプログラミングに役立つことを願っています。