作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有以下方法:
private <E extends Number> double GetAverage(ArrayList<E> al)
{
double total = 0;
Iterator<E> itr = al.iterator();
while(itr.hasNext())
{
total += itr.next();
}
return total;
}
但它不编译。我得到一个
"total cannot be resolved or is not a field"
在线
"total += itr.next();"
我知道 Java 不知道 E 的值,但我希望你明白我的意思,创建一个将 ArrayList 的总计(数值)相加的通用方法的最佳方法是什么。
最佳答案
您的代码实际上存在语法错误,您的代码行不完整。您的完整代码应该是:
private <E extends Number> double GetAverage(ArrayList<E> al) {
double total = 0;
Iterator<E> itr = al.iterator();
while (itr.hasNext()) {
E next = itr.next();
total += next.doubleValue();
}
return total;
}
注意:返回的是'total'而不是undefined retVal
关于Java 泛型运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069595/
我是一名优秀的程序员,十分优秀!