Class ArrayType

java.lang.Object

public class ArrayType extends Type
Type node for an array type.

In JLS8 and later, array types are represented by a base element type (which cannot be an array type) and a list of dimensions, each of which may have a list of annotations.

 ArrayType:
    Type Dimension { Dimension }
 
In JLS4 and before, array types were expressed in a recursive manner, one dimension at a time:
 ArrayType:
    Type [ ]
This structure became untenable with the advent of type-use annotations, because in the language model, the base type binds with array dimensions from right to left, whereas a recursive structure binds from left to right (inside out).

Example:
int @A[] @B[] @C[] is an @A-array of
int      @B[] @C[], but such a component type is not representable by nested ArrayTypes with contiguous source ranges.

Since:
2.0