Is there any difference initializing array by enumaration XOR new type[] + enumaration?

StackOverflow https://stackoverflow.com/questions/22852499

  •  27-06-2023
  •  | 
  •  

質問

Is there any difference between those to initializations of array?

CharSequence colors[] = new CharSequence[] {"red", "green", "blue", "black"};
CharSequence colors[] = {"red", "green", "blue", "black"};
役に立ちましたか?

解決

No, there are not. They will be compiled into the same byte code.

For reference, the Java Language Specification states

An array is created by an array creation expression (§15.10) or an array initializer (§10.6).

where array creation expression, ie. the new CharSequence[] part, is defined as

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 [ ]

and array initializer, ie. the {...} part, is defined as

ArrayInitializer:
    { VariableInitializersopt ,opt }

VariableInitializers:
    VariableInitializer
    VariableInitializers , VariableInitializer  

VariableInitializer:
    Expression
    ArrayInitializer
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top