1

我有一个 Java 方法,它需要一个

ArrayList<Float> 

作为参数。它计算 ArrayList 的平均值,并返回该值。

现在我想通过一个

ArrayList<Integer>

Java 不允许这样做,这在 C++ 中是可能的。

因此,只是想知道除了创建一个仅在类型上不同的相同类之外,还有哪些可用的替代方法,以及传递给每个方法的参数。

4

3 回答 3

7

您的方法应该接受一个List<? extends Number>参数,从数字中获取浮点值并计算它们的平均值。

List<? extends Number>意思是:某个未知类型的列表是或扩展数字。

于 2013-04-09T13:40:30.123 回答
4

更改签名以接受:

List<? extends Number>  

而是像这样:

public Double avg(List<? extends Number> list) {
    // calculate average here
}
于 2013-04-09T13:40:12.090 回答
2

您可以使用这样的方法声明:

public Number average(Collection<? extends Number> values)
{
...    
}
于 2013-04-09T13:41:06.573 回答