public static Object invokeField(String className, String filedName,
Object args) throws Exception {
Class<?> clazz = Class.forName(className);
for (Class<?> clazz2 = clazz; clazz2 != Object.class; clazz2 = clazz
.getSuperclass()) {
Field field = clazz2.getDeclaredField(filedName);
field.setAccessible(true);
Object obj = clazz.newInstance();
field.set(obj, args);
return field.get(obj);
}
return null;
}
}
运行结果
12
Exception in thread "main" java.lang.NoSuchFieldException: age
at java.lang.Class.getDeclaredField(Unknown Source)
at com.miyabi.lesson66.testinvokeField.invokeField(testinvokeField.java:23)
at com.miyabi.lesson66.testinvokeField.main(testinvokeField.java:11)
求解
Object args) throws Exception {
Class<?> clazz = Class.forName(className);
for (Class<?> clazz2 = clazz; clazz2 != Object.class; clazz2 = clazz
.getSuperclass()) {
Field field = clazz2.getDeclaredField(filedName);
field.setAccessible(true);
Object obj = clazz.newInstance();
field.set(obj, args);
return field.get(obj);
}
return null;
}
}
运行结果
12
Exception in thread "main" java.lang.NoSuchFieldException: age
at java.lang.Class.getDeclaredField(Unknown Source)
at com.miyabi.lesson66.testinvokeField.invokeField(testinvokeField.java:23)
at com.miyabi.lesson66.testinvokeField.main(testinvokeField.java:11)
求解










