不兼容的类型对象无法转换为 Number

incompatible types object cannot be converted to Number

我正在尝试编译以下代码,但出现“无法将不兼容的类型对象转换为 for(Number n:list) 处的数字。

import java.util.*;

 class Output
  {
    public static double sumOfList(List list)
    {
        double s=0.0;

        for(Number n:list)
            s+=n.doubleValue();

        return s;
    }

    public static void main(String[] args) 
    {
        List li=Arrays.asList(1,2,3);
        System.out.println(SumOfList(li));
    }
  }

收听编译器输出的 "Raw types" 警告和 use generics.

将列表类型声明为List<Number>List<? extends Number>

http://ideone.com/L6mIhA

(和 never use raw types. 它们的存在只是为了向后兼容。)

将您的代码更改为:

public static double sumOfList(List<Number> list){
..
}