在 Java 特殊行为中访问静态内部 class - 为什么?

Accessing static inner class in Java peculiar bhavior - Why?

根据我的理解,以下代码不应 compile,因为在扩展非 static 内部 classes.

时我们无法更改封闭的 class 参数

但是,这段代码工作正常。

class A<T0, T1> {
    class B {
        T0 t0;
        T1 t1;
    }

    class C extends A<T1, T0>.B {
        T0 t00 = t1;
        T1 t11 = t0;
    }
}

请帮我理解为什么会这样或者我的理解不正确。

code should not compile as we can not change enclosing class parameters

首先,您没有更改现有的参数,您只是修改了继承时绑定到class的类型。

第二,在解释内部 class C 与父 class [=11] 的参数时,您更改的类型绑定只不过是相反的=] 两者都是从 A<T, R>.

的边界推断出来的