Ideally, when you do not know the data type that you want to store in an array, you can create an Object array and later associate it with the data type. But, once the array is initialized to a particular data type, and then you try to store data of different data type, Java reacts with ArrayStoreException.
Listing 1. ArrayStoreException
public class ArrayStoreException{ Object objArr[]; //Creating an array objArr - Currently not initialized with any data type public static void main(String args[]) { ArrayStoreException arrayStoreException = new ArrayStoreException(); arrayStoreException.proceed(); } private void proceed() { objArr = new Integer[5]; //Initializing the data type of the array objArr to Integer objArr[0] = new String("Hello"); //Assigning a String value - which results in the ArrayStoreException //objArr[0] = new Integer(33); //Assigning a Integer value which is correct. Comment the above line and uncomment this line to execute without errors System.out.println("objArr[0]: "+objArr[0]); }}/*
Expected output:
[[email protected]]# java ArrayStoreExceptionException in thread "main" java.lang.ArrayStoreException: java.lang.String at ArrayStoreException.proceed(ArrayStoreException.java:23) at ArrayStoreException.main(ArrayStoreException.java:17)*/