zoukankan      html  css  js  c++  java
  • java 反射实现框架功能

    框架与框架要解决的核心问题

    我做房子卖给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入进我提供的框架中。框架与工具类有区别,工具类被用户的类调用,而框架则是调用用户提供的类。

    框架要解决的核心问题

    我在写框架(房子)时,你这个用户可能还在上小学,还不会写程序呢?我写的框架程序怎样能调用到你以后写的类(门窗)呢?

    因为在写才程序时无法知道要被调用的类名,所以,在程序中无法直接new 某个类的实例对象了,而要用反射方式来做。

    综合案例

    先直接用new语句创建ArrayList和HashSet的实例对象,演示用eclipse自动生成 ReflectPoint类的equals和hashcode方法,比较两个集合的运行结果差异。

    然后改为采用配置文件加反射的方式创建ArrayList和HashSet的实例对象,比较观察运行结果差异。

    引入了elipse对资源文件的管理方式的讲解。

    Eg:

    package july78javaEnhance;

    //利用资源文件加上反射操作!

    import java.io.FileInputStream;

    import java.io.InputStream;

    import java.util.Collection;

    import java.util.Properties;

    public class ReflectPropertiesDemo8 {

        public static void main(String[] args) throws Exception {

            //写出来的三个全部是可以的,但是相对又不一样!

           

            //可以的绝对路径InputStream ips = new FileInputStream("src/july78javaEnhance/MyPro.properties");//将这个文件加载进来!

           

            //可以的InputStream ips = ReflectPropertiesDemo8.class.getResourceAsStream("MyPro.properties");

            InputStream ips = ReflectPropertiesDemo8.class.getClassLoader().getResourceAsStream("july78javaEnhance/MyPro.properties");

            Properties pro = new Properties();

            pro.load(ips);

            ips.close();

           

            String className = pro.getProperty("className");

           

            Collection col = (Collection) Class.forName(className).newInstance();

           

            //Collection col = new TreeSet();//这样的做法也可以但是现在不想通过在等号右边具体的新建名称来做!

           

            col.add(12);

            col.add(13);

            col.add(12);

            col.add(23);

            col.add(36);

            System.out.println(col);

        }

    }

  • 相关阅读:
    你的服务器和网站为什么会被反复入侵
    MAC 查看当前安装的JDK位置
    Jmeter高并发测试
    解密AndroidManifest.xml、AXMLPrinter2.jar源码下载
    Win10家庭版如何启用本地组策略
    SQLFlow使用中的注意事项--设置篇
    Sqlflow 之隐私政策(Privacy plolicy)介绍
    血缘关系分析工具SQLFLOW--实践指南
    Oracle SQL 性能优化利器
    SQLFlow数据流分析工具的job功能介绍
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11137705.html
Copyright © 2011-2022 走看看