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

时间:2015-01-17 18:48:30

标签: java collections

我正在尝试编译以下代码,但是获取"不兼容类型对象无法转换为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));
    }
  }

2 个答案:

答案 0 :(得分:4)

聆听" Raw类型"警告您的编译器输出和use generics.

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

http://ideone.com/L6mIhA

(和never use raw types.它们仅用于向后兼容。)

答案 1 :(得分:2)

将您的代码更改为:

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