故障排除“类型参数T隐藏类型T”警告

我在Eclipse(最新版本)中收到以下代码的警告。

public interface A<T> extends B<T> {

public T getObject();

}

该警告出现在“ A”中的“ T”处,并显示:“类型参数T隐藏了类型T”。

奇怪的是,以下代码不生成任何错误或警告。

public interface A extends B<T> {

public T getObject();

}

但是现在我不能在告诉它T是什么类型的同时扩展A了。

我完全感到困惑。有人知道为什么会这样吗?谢谢。

回答:

您是否在某个地方有一个名为的类或接口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();

}

如果我删除class T,它将消失。

以上是 故障排除“类型参数T隐藏类型T”警告 的全部内容, 来源链接: utcz.com/qa/405154.html

回到顶部