Java如何用泛型定义接口方法
我创建了一个界面:
public interface SubApp {
public String talk(Result<? extends Object> result);
}
这一实施:
class A implements SubApp{
@Override
public String talk(Result<String> result) {...}
}
我的IDE出现以下错误:方法未从其超类重写方法
如何在接口中定义方法以使方法public String talk(Result<String> result)
覆盖接口的方法
# 1 楼答案
您的方法的问题是,您的实现比接口定义更具体,因此您的方法不会接受接口将接受的输入范围,这是不允许的。(您可以将输出类型细化为更具体的类型,因为输出类型可以向下转换为不太具体的类型,但输入的情况正好相反)
像这样的方法应该会奏效:
# 2 楼答案
试试像这样的东西
顺便说一句,您永远不需要
? extends Object
,因为所有内容都扩展了对象,所以您不会使用该表达式限制任何内容# 3 楼答案
试试这样的东西-
# 4 楼答案
?
表示通配符,但不是泛型。尝试以下方法