大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。
package reflect; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; interface fruit{ public abstract void eat() ; } class Apple implements fruit{ public void eat() { System.out.println("eat Apple"); } } class orange implements fruit{ public void eat() { System.out.println("eat orange"); } } class init{ public static Properties getPro() throws FileNotFoundException, IOException{ Properties pro = new Properties() ; File f = new File("fruit.properties") ; if(f.exists()){ System.out.println("有配置文件!"); //从配置文件里读取键值对 pro.load(new FileInputStream(f)) ; }else{ System.out.println("没有配置文件!"); pro.setProperty("apple", "reflect.Apple") ; pro.setProperty("orange", "reflect.orange") ; pro.store(new FileOutputStream(f), "FRUIT CLASS") ; } return pro ; } } class Factory{ public static fruit getInstance(String className){ fruit f = null ; try { //通过反射得到fruit的实例对象 f = (fruit)Class.forName(className).newInstance() ; } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return f ; } } public class Hello { public static void main(String[] args) { try { Properties pro = init.getPro() ; fruit f = Factory.getInstance(pro.getProperty("apple")) ; if(f != null){ f.eat() ; } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
结果为:
有配置文件!
eat Apple
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118290.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...