• 技术文章 >java >java基础

    java获取class实例的4种方式

    小妮浅浅小妮浅浅2021-05-21 17:03:32原创332

    1、获取方式

    (1)已知具体的类,通过类的 class 属性获取,该方法最为安全可靠,程序性能最高。

    (2)已知某个类的实例,调用该实例的 getclass() 方法获取 Class 对象。

    (3)已知一个类的全类名,且该类在类路径下,可通过 Class 类的静态方法 forName() 获取,可能抛出 ClassNotFoundException,比较常用。

    (4)通过类加载器。

    2、实例

    @Test
    public void test2() throws ClassNotFoundException {
        //方式一:调用运行时类的属性:.class
        Class<Person> clazz1 = Person.class;
        System.out.println(clazz1);//class cn.bruce.java.Person
     
        //方式二:通过运行时类的对象,调用getClass()
        Person p1 = new Person();
        Class<? extends Person> clazz2 = p1.getClass();
        System.out.println(clazz2);//class cn.bruce.java.Person
     
        //方式三:调用Class的静态方法:forName(String classPath)
        Class<?> clazz3 = Class.forName("cn.bruce.java.Person");
        System.out.println(clazz3);//class cn.bruce.java.Person
     
        System.out.println(clazz1 == clazz2);//true
        System.out.println(clazz1 == clazz3);//true
        //方式四:使用类的加载器:ClassLoader  (了解)
        ClassLoader classLoader = ReflectionTest.class.getClassLoader();
        Class<?> clazz4 = classLoader.loadClass("cn.bruce.java.Person");
        System.out.println(clazz4);//class cn.bruce.java.Person
        System.out.println(clazz1 == clazz4);//true
    }

    以上就是java获取class实例的4种方式,希望对大家有所帮助。更多Java学习指路:Java基础

    专题推荐:java class
    上一篇:java反射机制提供哪些功能 下一篇:java class实例代表哪些结构

    相关文章推荐

    • java中ThreadGroup如何创建• java中enumerate()的复制• java中jni是什么• java多线程的作用• java线程锁死是什么• java中RMI是什么• java中RMI的原理分析• java RabbitMQ消息队列是什么• java调用shell脚本的方法• java继承中有哪些注意点• java内存间交互规则• java中final域的内存语义理解• java枚举如何实现单例• java循环和递归的区别• java尾部递归如何使用• java懒惰评估如何实现• java中Lamdba表达式的用法整理• java如何自定义函数式接口• java方法引用是什么• java数组引用如何实现• java中Stream的使用流程及注意• java中Stream的四种创建• java中Optional类的使用• java中反射提供哪些功能• java获取class实例的方式• java反射调用指定的属性• javascript:void怎么解决• java浮点数的误差探究• java中BigDecimal有哪些用法• java中BigDecimal的数学运算• BigDecimal值在java比较的两种方法
    品易云

    全部评论我要评论

  • 取消发布评论发送
  • 

    Python学习网