int[]
и double[]
являются примитивными массивами, они не совместимы напрямую с классами коллекций, такими как ArrayList
.
Поскольку вы упомянули полиморфизм, я думаю, что вы пытаетесь сделать этоесть один метод, который может работать как на int
с, так и на double
с.Настройка в вашем методе main
хороша для этого: вы уже можете добавлять значения типа int и double в ArrayList<Number>
, поскольку Number
является суперклассом Integer
и Double
.
* 1014.* То, что вам нужно изменить, - это метод
computeAverage
.Вам не нужно две копии, вам нужна только одна, которая займет
List<Number>
, которая сможет работать с любым номером:
public static double computeAverage(List<Number> numbers) {
double sum = 0;
for (Number n : numbers) {
sum += n.doubleValue();
}
return sum / n.size();
}