gpt4 book ai didi

java - 当另一个类型参数为 时如何引用第二个类型参数

转载 作者:太空宇宙 更新时间:2023-11-04 14:15:35 25 4
gpt4 key购买 nike

我正在尝试实现一个具有两个类型参数 TT1 的函数。

如果类型参数 T 是类 Feed 的实例,我希望 T1 属于类 NewFeed;如果 TReward 类的实例,我希望 T1 属于 NewReward 类。因此,TT1 之间存在一些固有的映射 - 我该如何表达这一点?

public <T> void onServerSuccessGenericList(){
ArrayList<T1> myArray = myFunction(); // this line causes problem
ArrayList<T> myArray2 = somefunction() // hence I need T as well
}

我尝试了以下方法,但不起作用:

public <T> void onServerSuccessGenericList(Class t1ClsName){
ArrayList<t1ClsName> myArray = myFunction();

}

最佳答案

您可以为 FeedReward 类使用一个通用接口(interface),该接口(interface)接受相应的 NewFeed/NewReward 类作为类型参数:

interface NewInterface<T>{}

class Feed implements NewInterface<NewFeed>{}
class NewFeed {}

class Reward implements NewInterface<NewReward>{}
class NewReward {}

然后您可以像这样声明您的方法:

public <T extends NewInterface<T1>, T1> void onServerSuccessGenericList(){
ArrayList<T1> myArray = myFunction();
ArrayList<T> myArray2 = somefunction();
}

关于java - 当另一个类型参数为 <T> 时如何引用第二个类型参数 <T1>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27790972/

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