我有一个带有
的Java方法ArrayList<Float>
作为参数。它计算ArrayList的平均值,并返回值。
现在我要传递一个
ArrayList<Integer>
Java不允许这样做,它可以在C ++中使用。
所以,只是想知道除了创建一个只传递给每个方法的参数的相同类之外,还有哪些替代方法可用。
答案 0 :(得分:7)
您的方法应该以{{1}}作为参数,从数字中获取浮点值并计算它们的平均值。
List<? extends Number>
表示:某个未知类型的列表正在或正在扩展数字。
答案 1 :(得分:4)
更改签名以接受:
List<? extends Number>
而不喜欢这样:
public Double avg(List<? extends Number> list) {
// calculate average here
}
答案 2 :(得分:2)
您可以使用类似的方法声明:
public Number average(Collection<? extends Number> values)
{
...
}