【问题标题】:Accessing static inner class in Java peculiar bhavior - Why?在 Java 特有的行为中访问静态内部类 - 为什么?
【发布时间】:2019-01-08 05:14:50
【问题描述】:

据我了解,以下代码不应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;
    }
}

请帮助我理解为什么会这样,否则我的理解不正确。

【问题讨论】:

    标签: java static inner-classes


    【解决方案1】:

    代码不应该编译,因为我们不能改变封闭类 参数

    一方面,您没有更改现有的参数,您只是在继承时修改了绑定到类的类型。

    第二,与父类 B 相比,在解释内部类 C 的参数时,您更改的类型绑定只不过是颠倒的,这两者都是从 A&lt;T, R&gt; 的边界推断出来的.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 2013-04-15
      • 2016-12-10
      相关资源
      最近更新 更多