// 通过反射获取内部类
public class TestInnerReflect {
// 若内部类为static,则内部类必须不能是private
static class StaticInner {
public void say() {
System.out.println("StaticInner success");
}
}
// 若内部类不是static,则内部类必须是public
public class Inner {
public void say() {
System.out.println("Inner success");
}
}
public static void main(String[] args) {
// StaticInner
try {
Class<StaticInner> in = StaticInner.class;
StaticInner it = (StaticInner) in.newInstance();
it.say();
} catch (Exception e) {
e.printStackTrace();
}
// Inner
try {
Class<Inner> in = Inner.class;
Inner it = (Inner) in.getConstructors()[0].newInstance(new TestInnerReflect());
it.say();
} catch (Exception e) {
e.printStackTrace();
}
}
}