Java Reflect
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
性能问题:用代码生成代替反射



具体方法:
Class<?> clazz = obj.getClass();
Method method = clazz.getMethod("say", String.class, Integer.TYPE);
method.invoke(obj, "hello", 1);
setter&&getter方法:
Field[] fields = clazz.getDeclaredFields();
for(Field f : fields){
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method m = pd.getReadMethod();
System.out.println(m.invoke(obj));
}
for(Field f : fields){
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
String typeName = pd.getReadMethod().getReturnType().getSimpleName();
Method m = pd.getWriteMethod();
if("int".equals(typeName)){
m.invoke(obj, 100);
}else if("String".equals(typeName)){
m.invoke(obj, "newStr");
}
}
浙公网安备 33010602011771号