Java内部类的类引用

jld*_*ont 7 java generics inner-classes

有没有办法引用任何内部类?

我想指定一个与内部类兼容的返回类型,例如

Class<OuterClass.*> some_method();
Run Code Online (Sandbox Code Playgroud)

我理解这种语法无效.有没有办法表达这个?

我知道我不能使用类似Class<? extends OuterClass>因为内部类不扩展外部类.

Tho*_*mas 5

好吧,你可以参考特定的内部类,至少:

<T extends OuterClass.InnerClass> Class<T> some_method()
Run Code Online (Sandbox Code Playgroud)

除此之外,你会通过返回任何内部类的对象获得什么?这与返回任何对象以及内部实例与外部实例具有特殊关系的事实相当.但是,您可能无法直接使用该特殊关系.

编辑:

正如其他人所指出的那样,已经InnerClass可能是其他内部阶级扩展的超类.这将允许您返回任何扩展该类的类.

如果您使用接口,则不仅限于内部类,因为对于此限制,您需要非静态内部接口.但是,内部接口默认是静态的.