gpt4 book ai didi

Java - 如何用泛型定义接口(interface)方法

转载 作者:行者123 更新时间:2023-11-30 06:21:45 25 4
gpt4 key购买 nike

我创建了界面:

public interface SubApp {
public String talk(Result<? extends Object> result);
}

这个实现:

class A implements SubApp{
@Override
public String talk(Result<String> result) {...}
}

我的 IDE 给出了以下错误:方法没有覆盖其父类(super class)中的方法。

如何在接口(interface)中定义方法来生成方法 public String talk(Result<String> result)重写接口(interface)方法?

最佳答案

您的方法的问题在于您的实现比接口(interface)定义更具体,因此您的方法不会接受您的接口(interface)将接受的输入范围,这是不允许的。 (您可以将输出类型细化为更具体,因为输出类型可以向下转换为不太具体的类型,但输入恰恰相反)。

像这样的东西应该可以工作:

public interface SubApp<T extends Object> {
public String talk(Result<T> result);
}

class A implements SubApp<String> {
@Override
public String talk(Result<String> result) { ... }
}

关于Java - 如何用泛型定义接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20041000/

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