大家都知道内部类初始化需要提供外部类的实例。
今天在尝试使用反射方式初始化内部类时,发现同样要遵循这个java规范。但由于我只持有内部类定义(Class)对象,没有外部类实例,所以想通过:
Inner.class.getConstructors()[0].newInstance(new Outer()
是不行的。
需要实例化内部类,是为了避免内部类的类变量存在并发问题,所以希望每次使用时都newInstance一个出来。那么既然不行,那就只能使用ThreadLocal来解决这个问题了。