A nested class, being a static
member of a class, does not depend on the (instance) type parameter of the class. As such, in your example
class A<V> {
public static class Container {
public static class In<T> {
public static class Inner<U> {
}
}
public static <X> void doit() {
new In.Inner<X>(); // compilation error
}
}
}
There is absolutely no reason that the class instance creation expression
new In.Inner<X>()
would cause the error
"The member type
A.Container.In
must be parameterized, since it is qualified with a parameterized type"
The Inner
member type is a nested class of In
, which is a nested class of Container
, which is a nested class of A
. None of them have any relation to the type parameter declared in their declaring class.
This seems like a bug in your IDE and I would report it as such.