是否有任何理由导致代码出现编译错误?
Import java.util.*;
public class Storageclass
// class used to store the Student data
{
// creates the private array list needed.
private ArrayList<String> nameList = new ArrayList<String>();
private ArrayList<double> GPAList = new ArrayList<double>();
private ArrayList<double> passedList = new ArrayList<double>();
}
这是在一个主文件的类访问中,在类中有更多的不是这个错误的一部分。当我运行这个时,两个double arrayList给我这个错误。
Storageclass.java:8: error: unexpected type
private ArrayList<double> GPAList = new ArrayList<double>(1);
^
required: reference
found: double
我不确定为什么或该错误意味着任何帮助将不胜感激。
〜感谢您的帮助是我犯的一个令人尴尬的新手错误,但希望充分这可以帮助其他人。
答案 0 :(得分:7)
由于所有泛型类型<T>
在运行时erased为Object
,因此代替T
的每个类型都必须扩展Object。因此,您不能将T
设置为基本类型,如double
,但您可以使用其包装类Double
。试试这个:
private List<Double> passedList = new ArrayList<Double>();
或者自Java7更短的版本
private List<Double> passedList = new ArrayList<>();
如果您尝试将add
类型的double
变量添加到此类数组,也不要担心,因为它将autoboxed添加到Double
。
答案 1 :(得分:2)
原始类型不能用作泛型类型参数。使用包装类型Double
(或任何适当的选项)。
答案 2 :(得分:2)
使用ArrayList&lt; Double &gt;而不是ArrayList&lt; double&gt;。
答案 3 :(得分:0)
不能是原始类型
private ArrayList<double>
使用Double
private ArrayList<Double>