I want to create a program which dynamically creates multidimensional arrays, i.e. the program does not know how many dimensions the array will have as this is specified upon execution.

Code:
import java.lang.reflect.*;

class Stuff {

   public static void main(String[] args) {
      int[] dimensions = new int[Integer.parseInt(args[0])];
      
      for (int i = 0; i < dimensions.length; i++) {
         dimensions[i] = 10;
      }
      int[][][][] stuff = (int[][][][])Array.newInstance(int.class, dimensions);
   
      stuff[9][8][9][9] = 8;      
   }
}
It is possible to create such arrays by using Array.newInstance(), this method returns an Object and it must be typecasted if being used as in the example.
For example:
Code:
int[] dimensions = {10, 10, 10, 10};
int[][][][] stuff = (int[][][][])Array.newInstance(int.class, dimensions);
This will create a 4 dimensional array with 10 elements in each 'dimension'.

Now the problem is that having to use the constructor int[][][][] defeats the point of that method, as one still has to know how many dimensions the array will have.
Does anybody know how to avoid this?
As stated, I want a program that creates an n-dimensional array, where n is specified by the user.