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

返回作为参数提供的相同类型-Java8泛型,java,generics,types,Java,Generics,Types,我应该编写一个名为getLowCost的通用方法,它接受两个参数:一个数组列表arLst1,它是电池型、一次性使用型或可充电型,另一个是双倍成本。我应该返回arLst1中成本小于或等于所提供成本的所有电池的阵列列表 我想我会这样开始 public ArrayList<? extends Battery> getLowCost(ArrayList<? extends Battery> list, double val) { ArrayList<? extend

我应该编写一个名为getLowCost的通用方法,它接受两个参数:一个数组列表arLst1,它是电池型、一次性使用型或可充电型,另一个是双倍成本。我应该返回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);
        }
    }
}
public ArrayList使用类型变量:

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;
}
public ArrayList getLowCost(ArrayList list,double val){
ArrayList list2=新的ArrayList();
对于(目标:列表){
if(obj.getLifeTimeCost()
使用类型变量:

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;
}
public ArrayList getLowCost(ArrayList list,double val){
ArrayList list2=新的ArrayList();
对于(目标:列表){
if(obj.getLifeTimeCost()
提示:您已经学会如何使用了吗?提示:您已经学会如何使用了吗?