用了很久 java 还是没有明白 static 内部类是个什么概念。
class Out{
class Inner1{}
static class Inner2{}
}
Inner1 需要通过 Out 的实例构造。
Out out = new Out();
Out.Inner1 oi1 = out.new Inner1();
Inner2 可以通过 Out 的类名构造。
Out.Inner2 oi2 = new Out.Inner2();
大概两年前有同事就遇上过这个问题。当时就没搞明白。当时对于 static 的内部类,还是不太敢用的。以为内不属性都会变成静态的。
前一段时间,发现了 java.util.Arrays.ArrayList 。感觉这个静态应该不会有太多的副作用。
btw,这个 ArrayList 是一个轻量级的 List 。可以从 asList(T... a) 方法得到。和 java.util.ArrayList 的功能还是相当大差异的。