![](/img/trans.png)
[英]What is the difference between declaring a String and declaring it as final?
[英]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};
没有。
后者是一种方便的快捷方式语法,仅在声明语句中起作用,但结果完全相同。
它们产生与字符串数组相同的实例化(仅可用于声明),所获得的结果完全没有区别。 但是,我主要选择第一个(只是个人喜好)。
编辑:抱歉,出现第一个答案时我正在打字。
第一行使用包含数组初始化器的数组创建表达式,第二行仅包含数组初始化器。 在这里,它们执行相同的确切功能-创建和初始化数组。 但是只有一个在声明数组时才有效。
数组初始值设定项可以在声明(第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.