框架的概念及用反射技术开发框架的原理

    技术2024-12-12  16

    反射的作用->实现框架功能·框架与框架要解决的核心问题 -我做房子卖给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入进我提供的框架中。框架与工具类有区别,工具类被用户的类调用,而框架则是调用用户提供的类。 你做的门调用锁,锁是工具,你做的门被房子调用,房子时框架,房子和锁都是别人提供的。·框架要解决的核心问题 -我在写框架(房子)时,你这个用户可能还在上小学,还不会写程序呢?我写的框架程序怎么样能调用到你以后写的类(门窗)呢? -因为在写程序时无法知道要被调用的类名,所以,在程序中无法直接new某个类的实例对象类,而要用反射方式来做。·综合案例 -先直接用new语句创建ArrayList和HashSet的实例对象,演示用eclipse自动生成ReflectPoint类的equals和hashCode方法,比较两个集合 的运行结果差异。 -然后改为采用配置文件加反射的方式创建ArrayList和HashSet的实例对象,比较观察运行结果差异。  InputStream in = new FileInputStream("config.properties");  Properties props = new Properties();  props.load(in);  in.close();  String defaultValue = "java.util.HashSet";  String className = props.getProperty("className",defaultValue);  Collection collections = (Collection) Class.forName(className).newInstance(); -引入eclipse对资源文件的管理方式的讲解,用类加载器的方式管理资源和配置文件.  //InputStream in = ReflectTest2.class.getClassLoader().getResourceAsStream("lqq/heima/config.properties");  //InputStream in = ReflectTest2.class.getResourceAsStream("/lqq/heima/config.properties");  //InputStream in = ReflectTest2.class.getResourceAsStream("config.properties");  //InputStream in = ReflectTest2.class.getResourceAsStream("resources/config.properties");  InputStream in = ReflectTest2.class.getResourceAsStream("/lqq/heima/resources/config.properties");

    最新回复(0)