abstract class AbsClass {}
class MyAbs extends AbsClass {}
class MyClass<S extends AbsClass> {
S getObj() {
return new MyAbs();
}
}
遇到编译问题:
错误:(33, 16) java: 不兼容的类型:MyAbs无法转换为S
应该如何正确解决?
编辑: 我希望能够初始化MyClass{MyAbs},然后调用getObj()方法,该方法将返回一个MyAbs对象。根据Andy的答案,我需要将AbsClass强制转换为MyAbs或MySecondAbs,这正是我想避免的。
<S extends AbsClass>
,并将S getObj()
更改为MyAbs getObj()
或AbsClass getObj()
。目前来看,没有必要使用类型变量。 - Andy Turner