标签:rgs 修饰符 size tool 设置 for font 权限 stream
1. 反射生成class对象的三种方式
1) 通过对象类型的getclass方法来获得class对象
InputStream is=this.getClass().getClassLoader().getResourceAsStream(path);
2) 类加载器通过class对象的静态方法forname来获得
String driver = ps.getProperty("driver");
Class.forName(driver);
3) 通过指定类型的class来获得
public class jdbctools {
InputStream is = jdbctools.class.getClassLoader().getResourceAsStream("jdbc.properties");
}
2. class常用方法
1)getAnnotation(Class<A> annotationClass):获得指定类型的注释
2)getAnnotations():获得所有的注释
3)getClassLoader()类加载器
4)getConstructors():返回所有公有的构造方法
Class clazz = Class.forName("reflect.student");
clazz.getDeclaredConstructors();
5)getConstructor(Class<?>... parameterTypes):返回指定公有的构造方法,没有会显示没有这种方法异常
Constructor<?> constructor = clazz.getConstructor(String.class,int.class);
6) getDeclaredConstructor(Class<?>... parameterTypes):获取含私有构造方法
7) getDeclaredConstructors():获取所有构造方法
8)getDeclaredField(String name):获取含私有属性
clazz.getDeclaredField("name");
9)getDeclaredFields():获取所有属性
10)getDeclaredMethod(String name, Class<?>... parameterTypes):获取包含私有方法
clazz.getDeclaredMethod("name",String.class);
11)getDeclaredMethods():获取所有方法
12)getField(String name):获取公有属性
13)getFields():获取所有私有属性
14)getGenericInterfaces():获取类或接口的直接实现
15)getGenericSuperclass():直接超类
Type gentype = clazz.getGenericSuperclass()
16)getModifiers()获取修饰符
17)getSuperclass():表示实体的超类
for(Class clazz=obj.getClass();clazz != Object.class; clazz.getSuperclass()){}
18)newInstance() :无参构造产生对象
3.field常用方法
getGenericType():获取声明类型
getModifiers():获取修饰权限
field.getModifiers()
set(Object obj, Object value):设置值
field.set(obj, param);
setAccessible(boolean flag):设置是否去除权限
field.setAccessible(true);
get(Object obj):获取值
field.get(object);
4.method
invoke(Object obj, Object... args):调用方法
method.invoke(obj, parame);
setAccessible(boolean flag):设置是否去除权限
method.setAccessible(true);
标签:rgs 修饰符 size tool 设置 for font 权限 stream
原文地址:http://www.cnblogs.com/gg128/p/7683797.html