如何获取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异常信息

原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/272440.html

(0)
上一篇 2022年7月9日
下一篇 2022年7月9日

相关推荐

发表回复

登录后才能评论