1、得到构造器的方法
- Constructor getConstructor(Class[] params) -- 获得使用特殊的参数类型的公共构造函数,
- Constructor[] getConstructors() -- 获得类的所有公共构造函数
- Constructor getDeclaredConstructor(Class[] params) -- 获得使用特定参数类型的构造函数(与接入级别无关)
- Constructor[] getDeclaredConstructors() -- 获得类的所有构造函数(与接入级别无关)
2、获得字段信息的方法
- Field getField(String name) -- 获得命名的公共字段
- Field[] getFields()--获得类的所有公共字段
- Field getDeclaredField(String name) --获得类声明的命名的字段
- Field[] getDeclaredFields()-- 获得类声明的所有字段
3、获得方法信息的方法
- Method getMethod(String name, Class[] params) -- 使用特定的参数类型,获得命名的公共方法
- Method[] getMethods() -- 获得类的所有公共方法
- Method getDeclaredMethod(String name, Class[] params) -- 使用特写的参数类型,获得类声明的命名的方法
- Method[] getDeclaredMethods() -- 获得类声明的所有方法
4:获取注解的方法
1. Annotation[] annotations = (Annotation[]) class1.getAnnotations();//获取class对象的所有注解
2. Annotation annotation = (Annotation) class1.getAnnotation(Deprecated.class);//获取class对象指定注解
3. Type genericSuperclass = class1.getGenericSuperclass();//获取class对象的直接超类的
4. Type Type[] interfaceTypes = class1.getGenericInterfaces();//获取class对象的所有接口的type集合
5:其他扩展方法
- boolean isPrimitive = class1.isPrimitive();//判断是否是基础类型
- boolean isArray = class1.isArray();//判断是否是集合类
- boolean isAnnotation = class1.isAnnotation();//判断是否是注解类
- boolean isInterface = class1.isInterface();//判断是否是接口类
- boolean isEnum = class1.isEnum();//判断是否是枚举类
- boolean isAnonymousClass = class1.isAnonymousClass();//判断是否是匿名内部类
- boolean isAnnotationPresent = class1.isAnnotationPresent(Deprecated.class);//判断是否被某个注解类修饰
- String className = class1.getName();//获取class名字 包含包名路径
- Package aPackage = class1.getPackage();//获取class的包信息
- String simpleName = class1.getSimpleName();//获取class类名
- int modifiers = class1.getModifiers();//获取class访问权限
- Class<?>[] declaredClasses = class1.getDeclaredClasses();//内部类
- Class<?> declaringClass = class1.getDeclaringClass();//外部类
- getSuperclass():获取某类的父类
- getInterfaces():获取某类实现的接口
6. 具有的类型
- ParameterizedType:表示一种参数化的类型,比如Collection< String >
- GenericArrayType:表示一种元素类型是参数化类型或者类型变量的数组类型
- TypeVariable:是各种类型变量的公共父接口
-
WildcardType:代表一种通配符类型表达式,比如?、? extends Number、? super Integer。(wildcard是一个单词:就是”通配符“)