- 如何反射内部类
用$将主类和内部类分割开
Class clazz = Class.forName(“Test$Person”);
- 反射类中的类
private static Object inflateClass(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
Class clazz = Class.forName(className);
Object p = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
for (Field f : fields) {
if (f.getType().getSimpleName().equals(“String”)) {
f.set(p, “王五”);
} else if (f.getType().getSimpleName().equals(“int”)) {
f.set(p, 3);
} else if ((f.getType().isInterface() ? “interface “ : (f.getType().isPrimitive() ? “” : “class”)).equals(“class”)) {
f.set(p, inflateClass(f.getType().getName()));
}
}
return p;
}