Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 奇怪的字符串数组声明语法_Java_Arrays_Syntax - Fatal编程技术网

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"};