Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

issue creating a double array list

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.

like image 540
user2736640 Avatar asked Dec 19 '22 21:12

user2736640


2 Answers

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.

like image 107
Pshemo Avatar answered Jan 05 '23 06:01

Pshemo


Primitive types cannot be used as generic type arguments. Use the wrapper type Double (or whichever is appropriate).

like image 40
Sotirios Delimanolis Avatar answered Jan 05 '23 06:01

Sotirios Delimanolis