微信
支付宝
# java.lang.Class 类 什么是反射:反射允许对封装类的字段、方法和构造函数的信息进行编程访问。 !\[image-20241112102007129\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20241112102007129.png) Class类的实例对象,用于记录类描述信息。 Class类没有公共的构造方法,无法通过new运算符实例化;只能通过对象的getClass方法,或是通过Class.forName(...)来获得实例。 \| 方法 \| 目的 \| \| :----------------------------------------------------------- \| :----------------------------------------------------------- \| \| static ClassforName(String className)throws ClassNotFoundException \| 使用参数className来指定具体的类,来获得相关的类描述对象,该方法有可能抛出类加载异常(ClassNotFoundException),必须捕捉 \| \| Class getSuperclass() \| 获得当前类描述对象的父类的描述对象 \| \| String getName() \| 返回当前类描述对象的类名称 \| 获取Class对象的三种方式: \`\`\`java public class _T11 { // Class:类描述对象 public static void main(String\[\] args) { Class _class; // \*\*\*1\*对象.getClass() String str = ""; _class = str.getClass(); System.out.println(_class + "-----对象名.getClass()"); // \*\*\*2\*类.class _class = String.class; System.out.println(_class + "-----类名.class"); // \*\*\*3\*Class.forName("") try { _class = Class.forName("java.lang.String"); System.out.println(_class + "-----Class.forName(...)"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } \`\`\` \> class java.lang.String-----对象名.getClass() \> class java.lang.String-----类名.class \> class java.lang.String-----Class.forName(...) ### \*\*Class类的常用方法:\*\* - getName() 一个Class对象描述了一个特定类的属性,Class类中最常用的方法getName以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 - newInstance() Class还有一个有用的方法可以为类创建一个实例,这个方法叫做newInstance()。例如:x.getClass.newInstance(),创建了一个同x一样类型的新实例。newInstance()方法调用默认构造器(无参数构造器)初始化新建对象。 - getClassLoader() 返回该类的类加载器。 - getComponentType() 返回表示数组组件类型的 Class。 - getSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。 - isArray() 判定此 Class 对象是否表示一个数组类。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Veylor
最近发布
常用SQL