【问题标题】:Adding generic type objects添加泛型类型对象
【发布时间】:2014-02-23 18:23:35
【问题描述】:

我有一个泛型类型的数组列表,我正在尝试创建一个计算平均值的方法,但是我不能在不先转换它的情况下添加泛型,但我想传入整数或双精度我怎么能这样做?

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;

}

错误:运算符 + 未定义双精度参数类型, T

【问题讨论】:

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

标签: java generics arraylist


【解决方案1】:

不过,在您编辑之后,还不清楚 T 是什么。如果您能够将其缩小到 Number(这是您提到的 Integer 和 Double 的超类),则以下内容将起作用:

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

for (Number number : numbers) {
    sum += number.doubleValue();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多