gpt4 book ai didi

java - 使用通用返回类型重写方法,不发出警告

转载 作者:行者123 更新时间:2023-11-30 03:30:42 24 4
gpt4 key购买 nike

简单问题:我有一个有界泛型方法,我想要@Override

class Stuff {}
class SeriousStuff extends Stuff {}

interface Overridable {
<T extends Stuff> T getStuff();
}

如何在不参数化整个 Overridable 接口(interface)且不出现未检查转换警告的情况下执行此操作?

class SeriourExample implements Overridable {
SeriousStaff getStuff() { return new SeriousStuff(); }
||
\/
/* WARNING: Type safety: The return type SeriousStaff for
* getStuff() from the type SeriourExample needs unchecked
* conversion to conform to T from the type Overridable
*/
}

如果添加 @SuppressWarnings("unchecked") 仍然是礼貌且公平的,那么对我来说没问题。

我知道this ,但我仍然无法利用建议的解决方案,因为我无法使用 ? 通配符。

感谢? extends Reader 为您提供帮助(我知道这是一个可怕的帮助..无法抗拒。)

最佳答案

我会摆脱泛型并使用协变返回类型:

interface Overridable {
Stuff getStuff();
}

class SeriourExample implements Overridable {
@Override SeriousStuff getStuff() { ... }
}

关于java - 使用通用返回类型重写方法,不发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29123158/

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