gpt4 book ai didi

java - 内部类/接口(interface)中定义的泛型类型是否绑定(bind)到外部类泛型类型定义?

转载 作者:搜寻专家 更新时间:2023-11-01 02:25:19 25 4
gpt4 key购买 nike

在这段代码中:

public class MyClass<T extends Enum<T>> {

public static interface MyInt<T> {

}

// ...

}

类型是TMyInt<T>T相同在 MyClass<T extends Enum<T>> ?或者这是否定义了一个新的通用类型,以便将该接口(interface)移动到一个单独的文件不会改变任何东西?

在仔细考虑之后,我猜想这两种类型是独立的,因为我总是可以根据接口(interface)(使用 new MyInt<Integer>() { ... } )实例化一个对象,而无需任何引用外部类;但我还是要求它收集评论和想法。

最佳答案

我必须在 JLS 中查找它,但据我所知,内部接口(interface)始终是静态的,即不需要 static 关键字。因此 MyInt 完全独立于 MyClass,除了 MyClass 充当 MyInt 的命名空间。

如果 MyInt 是一个非静态内部类,MyInt 的类型参数将隐藏/重新定义 MyClass 的类型参数,因为 MyInt 将不再独立于 MyClass

来自JLS §8.5.1 :

A member interface is implicitly static

关于java - 内部类/接口(interface)中定义的泛型类型是否绑定(bind)到外部类泛型类型定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25283541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com