a) int i[] = new int[2]{1,2};
b) int[] i = new int[]{1,2,3}{4,5,6};
I know we cannot give size of an array at declaration . But in statement(a) we
Why not consult the Java Language Specification?
JLS 15.10 - Array Creation Expressions
ArrayCreationExpression:
new PrimitiveType DimExprs Dimsopt
new ClassOrInterfaceType DimExprs Dimsopt
new PrimitiveType Dims ArrayInitializer
new ClassOrInterfaceType Dims ArrayInitializer
DimExprs:
DimExpr
DimExprs DimExpr
DimExpr:
[ Expression ]
Dims:
[ ]
Dims [ ]
Notice that this means that array creation expressions with initializers can only have empty brackets.
Array initializers are defined in 10.6
ArrayInitializer:
{ VariableInitializersopt ,opt }
VariableInitializers:
VariableInitializer
VariableInitializers , VariableInitializer
The following is repeated from §8.3 to make the presentation here clearer:
VariableInitializer:
Expression
ArrayInitializer