• java反射小样例


    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

  • 相关阅读:
    #虚树,树形dp#CF613D Kingdom and its Cities
    #搜索,容斥#洛谷 2567 [SCOI2010]幸运数字
    #三分#洛谷 5931 [清华集训2015]灯泡
    windows中日期自动替换
    oracle的tablespaces使用情况监控
    k8s配置master运行pod
    redis配置数据持久化
    Centos7清理僵尸进程
    ZOJ 1078 Palindrom Numbers
    OCP 071【中文】考试题库(cuug整理)第33题
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4022136.html
Copyright © 2020-2023  润新知