• 反射:创建运行时类的对象


    1.代码举例
    Class<Person> clazz = Person.class;
    
    Person obj = clazz.newInstance();
    System.out.println(obj);

    2.说明

    newInstance():调用此方法,创建对应的运行时类的对象。内部调用了运行时类的空参的构造器。
    要想此方法正常的创建运行时类的对象,要求:
    1.运行时类必须提供空参的构造器
    2.空参的构造器的访问权限得够。通常,设置为public。

    在javabean中要求提供一个public的空参构造器。原因:
    1.便于通过反射,创建运行时类的对象
    2.便于子类继承此运行时类时,默认调用super()时,保证父类此构造器!!
    //体会反射的动态性,在框架中大量的使用框架,就是利用反射的通用性,只要给出类的路径或者一个标示,就可以创建相应的对象!!
        @Test
        public void test2(){
    
            for(int i = 0;i < 100;i++){
                int num = new Random().nextInt(3);//0,1,2
                String classPath = "";
                switch(num){
                    case 0:
                        classPath = "java.util.Date";
                        break;
                    case 1:
                        classPath = "java.lang.Object";
                        break;
                    case 2:
                        classPath = "com.atguigu.java.Person";
                        break;
                }
    
                try {
                    Object obj = getInstance(classPath);
                    System.out.println(obj);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
    
    
        }
    
        /*
        创建一个指定类的对象。
        classPath:指定类的全类名
         */
        public Object getInstance(String classPath) throws Exception {
           Class clazz =  Class.forName(classPath);
           return clazz.newInstance();
        }
  • 相关阅读:
    用户和组管理
    权限管理
    文件查找
    文件管理 2
    文件管理
    2016多校训练3_1007(hdu5758 Explorer Bo)
    poj3334(Connected Gheeves)
    POJ1015-Jury Compromise
    使用python来访问Hadoop HDFS存储实现文件的操作
    微信H5自动播放音乐,视频解决方案
  • 原文地址:https://www.cnblogs.com/lemonzhang/p/12889022.html
Copyright © 2020-2023  润新知