我在 eclipse(最新版本)中收到以下代码的警告。
public interface A<T> extends B<T> {
public T getObject();
}
警告出现在“A”中的“T”处,内容为:“类型参数 T 隐藏了类型 T”。
奇怪的是以下代码没有生成错误或警告。
public interface A extends B<T> {
public T getObject();
}
但现在我不能在告诉 A 类型的同时扩展它T
is.
我完全困惑了。有谁知道为什么会发生这种情况?
你在某个地方有一个名为的类或接口吗T
,或者你正在使用T
作为某个地方的具体类型名称而不是作为类型参数(这意味着您可能忘记在其他地方(例如在封闭类中)来指定T
是类型参数)?我可以用这个重现你的问题:
class T { // A concrete type T
}
interface B<T> { // warning: The type parameter T is hiding the type T
}
interface A<T> extends B<T> { // warning: The type parameter T is hiding the type T
T getObject();
}
如果我删除课程T
,它消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)