Field 字段
getFields:获取所有public修饰的字段 包括继承过来的:
Field[] fields =clazz.getFields();
for (Field field : fields) {
System.out.println(field.getName());
}
getDclarFields:获取所有访问修饰符修饰的字段 不包括从父类继承的:
Field[] fields1 = clazz.getDeclaredFields();
for (Field field : fields1) {
System.out.println(field.getName());
}
利用反射对成员属性赋值 set
对于私有的属性
需要field.setAccessible(true);
给出访问权限
Field field = clazz.getDeclaredField("sName");
field.setAccessible(true);
field.set(s, "小程");
System.out.println(s);
Method 方法
getMethodods 返回这个类所有的public方法 包括继承的
Method[] meth= clazz.getMethods();
for (Method method : meth) {
System.out.println(method.getName());
}
getDeclarMethods 返回这个类所有访问修饰符修饰的方法 不包括继承的
Method[] meth1 = clazz.getDeclaredMethods();
for (Method method : meth1) {
System.out.println(method.getName());
}
利用反射调取类中的方法
Method meth2= clazz.getDeclaredMethod("mehtod7",String.class);
调用的方法若是private私有的 则需要给出权限
meth2.setAccessible(true);
若需要接收方法返回值 为Object类型 可根据需要强转为其他类型
String r =(String) meth2.invoke(s,"小程");