简述:
由于最近遇到不少需要反射的类,而其中不乏内部类,在此总结一下内部类的全限定名的规律。
成员内部类
测试结果表明,无论成员内部类是否为静态,其全限定名都使用如下命名方法:
包名.外部类名$内部类名
测试代码:
package com.test;
public class InnerClassTest {
static class StaticInner{
}
class Inner{
}
public static void main(String[] args) {
StaticInner si = new StaticInner();
Inner in = new InnerClassTest().new Inner();
System.out.println(si.getClass());
System.out.println(in.getClass());
}
}
打印结果:
classcom.test.InnerClassTest$StaticInner
classcom.test.InnerClassTest$Inner
匿名内部类
匿名内部类的全限定名满足如下规律:
包名.外部类名$由1开始的正整数-按照类装载顺序依次排列
测试代码
package com.test;
public class InnerClassTest {
static Object stati