NullPointerException when Creating an Array of objects [duplicate]
I have been trying to create an array of a class containing two values, but when I try to apply a value to the array I get a NullPointerException.
public class ResultList {
public String name;
public Object value;
}
public class Test {
public static void main(String[] args){
ResultList[] boll = new ResultList[5];
boll[0].name = "iiii";
}
}
Why am I getting this exception and how can I fix it?
You created the array but didn't put anything in it, so you have an array that contains 5 elements, all of which are null. You could add
boll[0] = new ResultList();
before the line where you set boll[0].name.
ResultList[] boll = new ResultList[5];
creates an array of size=5, but does not create the array elements.
You have to instantiate each element.
for(int i=0; i< boll.length;i++)
boll[i] = new ResultList();
As many have said in the previous answers, ResultList[] boll = new ResultList[5];
simply creates an array of ResultList having size 5 where all elements are null. When you are using boll[0].name
, you are trying to do something like null.name
and that is the cause of the NullPointerException. Use the following code:
public class Test {
public static void main(String[] args){
ResultList[] boll = new ResultList[5];
for (int i = 0; i < boll.length; i++) {
boll[i] = new ResultList();
}
boll[0].name = "iiii";
}
}
Here the for loop basically initializes every element in the array with a ResultList
object, and once the for loop is complete, you can use
boll[0].name = "iiii";
I think by calling
ResultList[] boll = new ResultList[5];
you created an array which can hold 5 ResultList, but you have to initialize boll[0]
before you can set a value.
boll[0] = new ResultList();