Java 反射的一些思考
2016-04-02 00:00
351 查看
摘要: 可以通过反射做些什么事情
学了反射以后,感觉反射在解耦上可以做很多事情,比如说类似于spring的解耦,把类字符串放在property文件中,通过工厂模式实例化。进一步的解耦
工具类
test.properties文件属性
主类
学了反射以后,感觉反射在解耦上可以做很多事情,比如说类似于spring的解耦,把类字符串放在property文件中,通过工厂模式实例化。进一步的解耦
工具类
public class PropertiesUtil { public static final Properties prop=new Properties(); private PropertiesUtil(){} public static Properties getInstance() throws IOException{ prop.load(ClassLoader.getSystemResourceAsStream("test.properties")); return prop; } }
test.properties文件属性
anamial=reflect.Animals anamial.duck=reflect.Duck anamial.pet=
主类
public class ReflectThink { /** * 关于反射的思考 * 1.能否从property文件中获取类全名,进行反射 * 2.能否通过反射加工厂模式得到我想要的对象 * @throws Exception */ public static void main(String[] args) throws Exception { reflectByProperty(); getInstanceByFactory(); } /*1.能否从property文件中获取类全名,进行反射*/ public static void reflectByProperty() throws Exception{ Properties prop=PropertiesUtil.getInstance(); Object obj=prop.get("anamial.duck"); //获取duck类全名 Class<?> klass=Class.forName(obj.toString()); Duck duck=(Duck)klass.newInstance(); duck.fly(); } /*2.能否通过反射加工厂模式得到我想要的对象*/ public static void getInstanceByFactory() throws Exception{ Duck duck=(Duck)ReflectFactory.getInstance("duck"); duck.fly(); Animals animals=(Animals)ReflectFactory.getInstance("animals"); animals.setAge(10); System.out.println(animals.getAge()); } }
相关文章推荐
- Java反射学习 getClass()函数应用
- java反射实现javabean转json实例代码
- Java反射中常用的操作方法
- Java 反射
- java 通过反射获取调用类方法及属性
- Java高级编程 - 使用反射强制给private字段赋值
- Java高级编程 - 使用反射强制给private字段赋值
- java课堂练习,反射
- JAVA基础之反射
- java反射
- java基础反射
- Android获取apk签名信息(举例说明java反射调用方法步骤)
- 理解JAVA反射机制
- 黑马程序员---java基础加强 反射的深入理解
- 黑马程序员-----java基础java的反射机制
- java 通过反射获取调用类方法及属性
- java 反射调用带回调接口的函数
- JAVA反射
- 黑马程序员——【Java反射学习】Class类的使用
- 黑马程序员——【Java反射学习】方法的反射/成员变量的反射/构造函数的反射