• 技术文章 >java >java基础

    java获取class实例的方式

    小妮浅浅小妮浅浅2021-08-05 10:24:27原创5370

    说明

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

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

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

    4、通过类加载器

    1

    ClassLoader cl = this.getclass().getClassLoader(); Class clazz = cl.loadClass("类的全类名");

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    @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实例的方式,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java class
    上一篇:java中反射提供哪些功能 下一篇:java反射调用指定的属性

    相关文章推荐

    • java线程锁死是什么• java中RMI的原理分析• java RabbitMQ消息队列是什么• java调用shell脚本的方法• java继承中有哪些注意点• java内存间交互规则• java中final域的内存语义理解• java枚举如何实现单例• java循环和递归的区别• java懒惰评估如何实现• java中Lamdba表达式的用法整理• java如何自定义函数式接口• java方法引用是什么• java数组引用如何实现

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网