gpt4 book ai didi

java - 如何返回一个泛型类型,同时将另一个泛型类型作为参数,两者都需要实现接口(interface)?

转载 作者:行者123 更新时间:2023-12-01 11:36:43 24 4
gpt4 key购买 nike

好吧,是的,标题有点令人困惑。但这就是我想要实现的目标:

我想返回一个包含 C 类型元素的列表。并且我希望该方法接收 R 类型的变量。并且 C 必须是实现接口(interface)的类,即 C_interface,并且 R 必须是一个类实现另一个接口(interface),即R_interface。

在我的世界中,这个方法头应该有效:

public <C implements C_interface, R implements R_interface> List<C> method_name(R r)

但事实并非如此。我在 Eclipse 中收到以下错误:

Multiple markers at this line
- Syntax error on token "implements", ,
expected
- R cannot be resolved to a type
- Syntax error on token "implements", ,
expected
- C cannot be resolved to a type

如果我删除实现接口(interface)部分,如下所示:

public <C, R> List<C> method_name(R r)

一切正常。我想我可以检查方法内的类型。但如果可以采用第一种方法,那就更好了。

最佳答案

您应该使用extends而不是implements。这有效:

public class DoubleParamGeneric {

public <C extends CInterface, R extends RInterface> List<C> m(R r) {

List<C> result = null;

// Process here

return result;

}
}

public interface CInterface {

}

public interface RInterface {

}

关于java - 如何返回一个泛型类型,同时将另一个泛型类型作为参数,两者都需要实现接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29899583/

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