小编mwo*_*g56的帖子

使用<S extends {class}>的Java泛型和不兼容类型

abstract class AbsClass {}

class MyAbs extends AbsClass {}

class MyClass<S extends AbsClass> {
    S getObj() {
        return new MyAbs();
    }
}
Run Code Online (Sandbox Code Playgroud)

获取编译器问题:

错误:(33,16)java:不兼容的类型:MyAbs无法转换为S.

这样做的正确方法是什么?

编辑:我希望能够初始化MyClass {MyAbs},然后调用getObj(),这将返回一个MyAbs对象.有了Andy的回答,我必须将AbsClass转换为MyAbs或MySecondAbs,这是我试图避免的

java generics

4
推荐指数
2
解决办法
2134
查看次数

标签 统计

generics ×1

java ×1