簡體   English   中英

聲明字符串數組的區別

[英]difference in declaring your string array

之間的區別是什么:

String [] columns = new String []{KEY_ROWID, KEY_TITLE, KEY_DESC, KEY_TIME};

和這個 :

String [] columns={KEY_ROWID, KEY_TITLE, KEY_DESC, KEY_TIME};

沒有。

后者是一種方便的快捷方式語法,僅在聲明語句中起作用,但結果完全相同。

它們產生與字符串數組相同的實例化(僅可用於聲明),所獲得的結果完全沒有區別。 但是,我主要選擇第一個(只是個人喜好)。

編輯:抱歉,出現第一個答案時我正在打字。

第一行使用包含數組初始化器的數組創建表達式,第二行僅包含數組初始化器。 在這里,它們執行相同的確切功能-創建和初始化數組。 但是只有一個在聲明數組時才有效。

數組初始化程序在JLS的10.6節中定義

數組初始值設定項可以在聲明(第8.3節,第9.3節,第14.4節)中指定,也可以在數組創建表達式的第15.10節中指定。

 ArrayInitializer: { VariableInitializersopt ,opt } VariableInitializers: VariableInitializer VariableInitializers , VariableInitializer 

15.10節定義了數組創建表達式,以要求new SomeType[]

數組創建表達式用於創建新數組(第10節)。

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

因此,如果new SomeType[]部分是數組變量的聲明的一部分,則可以將其省略,但是必須將其包括在其他位置,例如賦值表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM