gpt4 book ai didi

java - 在另一个类中传递方法时类型不兼容

转载 作者:行者123 更新时间:2023-11-30 08:07:36 25 4
gpt4 key购买 nike

当我使用另一个类中的这些方法时,我遇到了不兼容的类型错误,我应该返回给定年份的平均马力在指定范围内的所有汽车的数组。

这是我从另一个类返回数组列表的方法:

public ArrayList<Lamborghini> getCarsFromThisYear(int year){
ArrayList<Lamborghini> fromYear = new ArrayList<Lamborghini>();

for( Lamborghini c : inventory){
if(c.getModelYear() == year){
fromYear.add(c);
}
}

if( fromYear.size() == ZERO){
return new ArrayList<>();
}
return fromYear;
}

public Lamborghini[] getCarsWithHorsepowerRange(double lowHP, double highHP){
int matches = ZERO;

for (Lamborghini c : inventory){
if(c.getHorsepower() >= lowHP && c.getHorsepower() <= highHP){
matches++;
}
}
Lamborghini[] horsepower = new Lamborghini[matches];
int indexInArray = ZERO;
for (Lamborghini c : inventory){
if(c.getHorsepower() >= lowHP && c.getHorsepower() <= highHP){
horsepower[indexInArray] = c;
indexInArray++;
}
}
return horsepower;
}

这是我正在处理的事情,我在调用时遇到错误:c.getCarsFromThisYear(modelYear) 和 (c.getCarsWithHorsepowerRange(lowHP, highHP)

public LamborghiniCarLot[] getAllCarLotsWithAverageHorsepowerInRangeForYear(int modelYear, double lowHP, double highHP){
int matches = ZERO;

for(LamborghiniCarLot c : carLots){
if (c.getCarsFromThisYear(modelYear)){
if(c.getCarsWithHorsepowerRange(lowHP, highHP)){
matches++;
}
}
}

LamborghiniCarLot[] search = new LamborghiniCarLot[matches];
int index = ZERO;

for(LamborghiniCarLot c : carLots){
search[index] = c;
index++;
}
}

最佳答案

以下方法存在许多问题:

  public ArrayList<Lamborghini> getCarsFromThisYear(int year){
ArrayList<Lamborghini> fromYear = new ArrayList<Lamborghini>();

for( Lamborghini c : inventory){
if(c.getModelYear() == year){
fromYear.add(c);
}
}

if( fromYear.size() == ZERO){
return new ArrayList<>();
}
return fromYear;
}
  • 返回List<Lamborghini>而不是ArrayList<Lamborghini>
  • fromYear列表的大小为“零”时,仅返回您在方法第二行中实例化的数组列表。或者更改 ArrayList<>()ArrayList<Laborghini>在你的if陈述。

这是我的建议:

public List<Lamborghini> getCarsFromThisYear(int year){
List<Lamborghini> fromYear = new ArrayList<Lamborghini>();

for( Lamborghini c : inventory){
if(c.getModelYear() == year){
fromYear.add(c);
}
}

return fromYear;
}

另一个问题是 if (c.getCarsFromThisYear(modelYear)) 。该方法返回 List<Lamborghini>但 if 语句期望 boolean值(value)。

关于java - 在另一个类中传递方法时类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881746/

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