使用通用 return 类型重写方法且无警告

Overriding method with generic return type with no warning

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

class Stuff {}
class SeriousStuff extends Stuff {}

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

如何在不对整个 Overridable 界面进行参数化并且没有未经检查的转换警告的情况下执行此操作?

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 的帮助(我知道这是一个糟糕的..无法抗拒。)

我只想摆脱泛型并使用协变 return 类型:

interface Overridable {
  Stuff getStuff();
}

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