• 如何获取Class对象呢?


    转自:

    如何获取Class对象呢?

    Class对象简介说明:

    Class类被创建后的对象就是Class对象,这里需要注意,Class对象表示的是自己手动编写类的类型信息。

    这是什么意思呢?比如创建一个Searchin类,那么,JVM就会创建一个Searchin对应Class类的Class对象,该Class对象则保存了Searchin类相关的类型信息。

    实际上在Java中每个类都有且只有一个Class对象。

    每当我们编写并且编译一个新创建的类就会产生一个对应Class对象并且这个Class对象会被保存在同名.class文件里。说到.class文件,大家可能很熟悉,因为Java程序编译之后就会有.class文件。事实上,编译后的字节码文件保存的就是Class对象。

    那为什么需要这样一个Class对象呢?

    是这样的,当我们new一个新对象或者引用静态成员变量时,Java虚拟机(JVM)中的类加载器子系统会将对应Class对象加载到JVM中,然后JVM再根据这个类型信息相关的Class对象创建我们需要实例对象或者提供静态变量的引用值。也就是说,Class对象对于类的实例化具有非常重要的意义。没它就没法new新对象和引用静态成员变量。

    这里需要再次重点提醒一下,上文说到“Java中每个类只有一个Class对象”,这句话是什么意思呢?

    对于手动编写的每个Class类,无论创建多少个实例对象,在JVM中都只有一个Class对象,即在内存中每个类有且只有一个相对应的Class对象。
     

    下文笔者讲述获取Class对象的方法分享,如下所示

    实现思路:
        使用Class类的forName(String clazzName)静态方法
    	     该方法需要传入字符串参数(类的全限定类名/包含完整包名) 
    
        调用某个类的class属性来获取该类对应的Class对象
           如:User.class将会返回User类对应的Class对象
    
        调用某个对象的getClass()方法
           该方法是java.lang.Object类中的一个方法
    

    注意事项:

     获取Class对象时,当未找到类时   
    	会抛出ClassNotFoundException异常信息
  • 相关阅读:
    如何利用Api接口获取手机当前的网络位置信息
    ECharts合集
    pygame中self有点想问的问题
    ASP.NET集成客户关系管理的企业网站的设计与开发
    Pytorch总结七之深度学习的正向、反向传播原理+参数初始化+实战房价预测
    解密JavaChassis3:易扩展的多种注册中心支持
    关于fastdds相关问题
    《ESP8266通信指南》1-ESP8266 简介
    策略模式和观察者模式
    智能书架中RFID技术是如何实现图书定位的
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/125555755