issue creating a double array list

2019-07-02 04:42发布

问题:

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>