java.lang.Class类是Java语言中最重要的类,它提供了一种可以访问和操作类和对象的机制。它是Java反射机制的核心,也是Java语言动态性的基础。
java.lang.Class类提供了一些方法来获取关于类或对象的信息,这些方法包括:
1. getName():返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)的名字。 2. getSuperclass():返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Class。 3. getInterfaces():返回一个包含某些 Class 对象所表示的全部接口的数组。 4. getDeclaredFields():返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的实体中声明为公共字段。 5. getDeclaredMethods():返回 Method 对象的一个数组,这些对象反映此 Class 对象所表征的实体中声明为公共方法。 6. newInstance() :使用此 Class 对象表征的实体来创建一个新实例。 7. isInstance(Object obj) :测试 obj 是否是此 Class 所表征的实体 的实例。 8. isAssignableFrom(Class cls) :测试 cls 是否是此 Class 所表征 的实体或者是其直接或间接子 穿件。 9. isInterface() :测试此 Class 对象是否表征一个 interface 网面。 10. isArray() :测试此 Class 对 被是否表征一个数 组。 11. isPrimitive() :测试此Class对 被是否表征一个原始 网面(primitive type)。
java.lang.Class也能够用来加载外部文件并将其作为字节代码加以执行,如通过loadClass(String name)方法加地外部文件并把文件中声明好函数封装成Method对 被,然后通过invoke(Object obj, Object[] args)方法来执 被函数,即使在不修改原代 码情况下也能够加地新函数并把函数封装成Method对 被,然后通过invoke(Object obj, Object[] args)方法来执 被函数.
Class类的实例对象,用于记录类描述信息。
Class类没有公共的构造方法,无法通过new运算符实例化;只能通过对象的getClass方法,或是通过Class.forName(…)来获得实例。
方法 | 目的 |
---|---|
static ClassforName(String className)throws ClassNotFoundException | 使用参数className来指定具体的类,来获得相关的类描述对象,该方法有可能抛出类加载异常(ClassNotFoundException),必须捕捉 |
Class getSuperclass() | 获得当前类描述对象的父类的描述对象 |
String getName() | 返回当前类描述对象的类名称 |
获取Class对象的三种方式:
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(...)
Java教程 -Java三元运算符?运算符是三元运算符。Java三元运算符基本上是简单的if语句的简写形式。语法?具有以下一般形式:expres...
早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。虽然...
数组是一种非常有用和常用的数据类型,存在于每种程序语言之中,java中的数组是一种最简单的复合数据类型,刚学习java数组的小白...
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由詹姆斯·高斯林(James Gosling)和...
Python3 os.stat_float_times() 方法 Python3 OS 文件/目录方法概述os.stat_float_times() 方法用于决定stat_result是否以float...