Java 奇怪的字符串数组声明语法
有人能解释一下为什么Java 奇怪的字符串数组声明语法,java,arrays,syntax,Java,Arrays,Syntax,有人能解释一下为什么{}写在字符串数组声明之后吗 谢谢。这是一个元素数组。在本例中,包含字符串“csv” 作为声明的一部分编写时,可采用更简洁的形式: private final String[] okFileExtensions = new String[] { "csv" }; 多元素数组在值之间使用逗号。根本不需要任何值 private final String[] okFileExtensions = { "csv" }; 值得注意的是,虽然引用是最终的,但数组不是。所以你可以写:
{}
写在字符串数组声明之后吗
谢谢。这是一个元素数组。在本例中,包含
字符串“csv”
作为声明的一部分编写时,可采用更简洁的形式:
private final String[] okFileExtensions = new String[] { "csv" };
多元素数组在值之间使用逗号。根本不需要任何值
private final String[] okFileExtensions = { "csv" };
值得注意的是,虽然引用是最终的,但数组不是。所以你可以写:
private final String[] okFileExtensions = { "csv", "tsv" };
private final String[] noFileExtensions = { };
解决此问题的一种方法是切换到集合并使用不可修改的实现:
okFileExtensions[0] = "exe";
集合通常应该优先于数组(对于引用类型)。创建一个内联字符串数组。这是Java对数组声明的有效语法
在传递数组而不声明变量时,可以使用该选项:
private final Set<String> okFileExtensions = { "csv" };
然后像这样调用它:
public void printArray( String [] someArray ) {
for( String s : someArray) {
System.out.println( s );
}
}
大括号只能在声明数组时使用,因此不允许出现以下情况:
printArray( new String [] { "These", "are", "the", "contents"} );
我认为一个不那么冗长(也不那么混乱)的声明应该是:
Stirng [] a;
a = {"on", "two"};
如果要向数组中添加多个文件扩展名值,只需使用逗号分隔它们,例如private final String[]okFileExtensions={“csv”、“txt”、“sql”};我现在在回答中添加了这一点。集合通常比数组(对于引用类型)更受欢迎。
这在很大程度上取决于数组的用途和范围。正如这里给出的,这对我来说太笼统了。+1用于提及JDK7增强。我不知道那个。看起来很有用。也许。。。但是<代码>新[]{}} /Cord>语法可以做得更多。考虑使用枚举,而不是显式硬编码文件扩展名。
Stirng [] a;
a = {"on", "two"};
private final String[] okFileExtensions = {"csv"};