问题
Is there any reason the fallowing code would give A compile error ?
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>();
}
this is in a class access by a main file there is more in the class by it not part of this error. when I run this the two double arrayList give me this error.
Storageclass.java:8: error: unexpected type
private ArrayList<double> GPAList = new ArrayList<double>(1);
^
required: reference
found: double
I am not sure why or what that error means any help would be appreciated.
~ Thanks for the help was a embarrassingly novice mistake I made, but hope full this can help some other person.
回答1:
Since all generic types <T> are erased at runtime to Object every type you put in place of T must also extend Object. So you can't set T to be primitive type like double but you can use its wrapper class Double. Try this way:
private List<Double> passedList = new ArrayList<Double>();
or since Java7 little shorter version
private List<Double> passedList = new ArrayList<>();
Also don't worry if you try to add variable of double type to such array since it will be autoboxed to Double.
回答2:
Primitive types cannot be used as generic type arguments. Use the wrapper type Double (or whichever is appropriate).
回答3:
Use ArrayList<Double> instead of ArrayList<double>.
回答4:
cant be primitive type
private ArrayList<double>
use Double
private ArrayList<Double>
来源:https://stackoverflow.com/questions/20039098/issue-creating-a-double-array-list