Class类位于java.lang包中,是一个泛型类,任何类型都有class对象,包括int,void
重要方法
- 获取类的名称信息:Class类是一个泛型类,主要方法
getName()、getSimpleName()、getCanonicalName()、getPackage() - 获取字段信息:
getFields()、getDeclaredFields()、getField(String name)、getDeclaredField(String name) - 获取方法信息:
getMethods()、getDeclaredMethods()、getMethod(String name, Class<?>... paramenterTypes)、getDeclaredMethod(String name, Class<?>... paramenterTypes) - 获取构造器:
getConstructors()、getDeclaredConstructors()、getConstructor(Class<?>... paramenterTypes)、getDeclaredConstructor(Class<?>... paramenterTypes) - 创建对象:
getInstance(),实际上也是调用的Constructor中的无参构造方法。 - 类型信息:
isArray()、isPrimitive()... - 加载方法:是一个静态方法,用于加载类。
相关的类
Field:位于java.lang.reflect包下,用于描述字段信息。Method:位于java.lang.reflect包下,用于描述方法。可通过method.invoke(Object object, Object... args)调用方法,object是调用方法的对象,args是参数列表。Constructor:位于java.lang.reflect包下,描述构造方法,newInstance()只能通过无参构造方法创建对象,而Constructor可以通过有参构造方法创建。- 举例
// 创建了一个默认值为100的对象 Class clazz = StringBuilder.class; Constructor<StringBuilder> constructor = clazz.getConstructor(new Class[]{int.class}); StringBuilder sb = constructor.newInstance(100);
- 举例

京公网安备 11010502036488号