Java 添加泛型类型对象

Java 添加泛型类型对象,java,generics,arraylist,Java,Generics,Arraylist,我有一个泛型类型的数组列表,我正在尝试创建一个方法来计算平均值,但是我不能在不先强制转换的情况下添加泛型,但是我假设传入整数或双精度,我如何才能做到这一点 private ArrayList<T> grades; public double computeAverage() { double average = 0; double sum = 0; for (int i = 0; i < grades.size(); i++) { s

我有一个泛型类型的数组列表,我正在尝试创建一个方法来计算平均值,但是我不能在不先强制转换的情况下添加泛型,但是我假设传入整数或双精度,我如何才能做到这一点

private ArrayList<T> grades;

public double computeAverage()
{
    double average = 0;
    double sum = 0;

    for (int i = 0; i < grades.size(); i++) {
        sum = sum + grades.get(i);  <<< ERROR
    }

    average = sum/grades.size();

    return average;

}
private ArrayList等级;
公共双计算平均值()
{
双平均=0;
双和=0;
对于(int i=0;isum=sum+grades.get(i);不过,在编辑之后,还不清楚什么是
T
。如果您能够将其缩小为
数字(这是您提到的
整数和
双精度的超类),以下操作将起作用:

List<Number> numbers = new ArrayList<Number>();

for (Number number : numbers) {
    sum += number.doubleValue();
}
List number=new ArrayList();
用于(编号:编号){
sum+=number.doubleValue();
}

但是,在编辑之后,还不清楚什么是
T
。如果您能够将其缩小为
数字
(这是您提到的
整数
双精度
的超类),则以下操作将起作用:

List<Number> numbers = new ArrayList<Number>();

for (Number number : numbers) {
    sum += number.doubleValue();
}
List number=new ArrayList();
用于(编号:编号){
sum+=number.doubleValue();
}

你的错误是什么?另外,展示你是如何定义
等级的。好的,我很高兴你向我们展示了你的错误。现在,
T
是在类级别声明的吗?你如何实例化这个对象的实例?@Makoto我想信息在这里并不重要。显然我们不能使用
+
运算符和类型
T
。你的错误是什么?另外,展示你如何定义
等级
。好的,我很高兴你向我们展示了你的错误。现在,
T
是在类级别声明的吗?你如何实例化这个对象的实例?@Makoto我想信息在这里并不重要。显然,我们不能将
+
运算符与
T
类型一起使用。