gpt4 book ai didi

java - 返回与作为参数提供的相同类型 - Java8 泛型

转载 作者:行者123 更新时间:2023-12-01 20:04:15 25 4
gpt4 key购买 nike

我应该编写一个名为 getLowCost 的通用方法,它接受两个参数:一个数组列表 arLst1,其类型可以是 Battery、Single Use 或 Rechargeable,以及一个双倍成本。我应该返回 arLst1 中成本小于或等于所提供成本的所有电池的数组列表。

我想我会这样开始,

public ArrayList<? extends Battery> getLowCost(ArrayList<? extends Battery> list, double val) {
ArrayList<? extends Battery> list2 = new ArrayList<>();
for (Battery obj: list) {
if (obj.getLifeTimeCost() < val) {
list2.add(obj);
}
}
}

不幸的是,我无法将该对象添加到我的列表中2。如何保证返回类型与第一个参数的类型相同?

最佳答案

使用类型变量:

public <T extends Battery> ArrayList<T> getLowCost(ArrayList<T> list, double val) {
ArrayList<T> list2 = new ArrayList<>();
for (T obj: list) {
if (obj.getLifeTimeCost() < val) {
list2.add(obj);
}
}
return list2;
}

关于java - 返回与作为参数提供的相同类型 - Java8 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47642925/

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