private final String[] okFileExtensions = new String[] { "csv" };
有人能解释一下为什么 {}
写在 String 数组声明之后吗?
谢谢。
最佳答案
它是一个元素的数组。在本例中包含 String
"csv"
。
当写成声明的一部分时,可以写成更简洁的形式:
private final String[] okFileExtensions = { "csv" };
多元素数组在值之间使用逗号。根本不需要任何值。
private final String[] okFileExtensions = { "csv", "tsv" };
private final String[] noFileExtensions = { };
可能值得注意的是,尽管引用是最终的,但数组不是。所以你可以这样写:
okFileExtensions[0] = "exe";
解决这个问题的方法是切换到集合并使用不可修改的实现:
private final Set<String> okFileExtensions = Collections.unmodifiableSet(
new HashSet<String>(Arrays.asList({
"csv"
}));
JDK8 旨在增强集合,使其更加简洁。可能是语言中的 List
和 Set
文字。可能:
private final Set<String> okFileExtensions = { "csv" };
集合通常应该优先于数组(对于引用类型)。
关于java - 奇怪的字符串数组声明语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2042944/