ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何获取Class对象呢?

2022-07-05 16:34:41  阅读:161  来源: 互联网

标签:Java 类型信息 对象 class 获取 JVM Class


转自:

http://www.java265.com/JavaJingYan/202206/16565125493837.html

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异常信息

标签:Java,类型信息,对象,class,获取,JVM,Class
来源: https://www.cnblogs.com/java265/p/16425175.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有