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