• 技术文章 >java >java基础

    java获取class实例的方式

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

    说明

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

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

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

    4、通过类加载器

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

    实例

    @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学习网