java.io.File.list(FilenameFilter filter)
方法的Java文档在返回值描述中包含以下内容:
如果目录为空或者没有文件名被过滤,则数组将为空。
我如何做类似的事情,并初始化一个长度为0的字符串数组(或任何其他数组)?
java.io.File.list(FilenameFilter filter)
方法的Java文档在返回值描述中包含以下内容:
如果目录为空或者没有文件名被过滤,则数组将为空。
我如何做类似的事情,并初始化一个长度为0的字符串数组(或任何其他数组)?
正如其他人所说的那样,
new String[0]
确实会创建一个空数组。然而,数组有一个好处——它们的大小不会改变,因此您始终可以使用相同的空数组引用。因此,在您的代码中,您可以使用:
private static final String[] EMPTY_ARRAY = new String[0];
然后每次需要时只需返回EMPTY_ARRAY
——没必要每次都创建一个新对象。
private static final String[] EMPTY_ARRAY = {};
- Thomas JungEMPTY_ARRAY [0]
- 这是尝试访问不存在的元素0... - Jon SkeetString[] str = new String[0];
?
String[] str = {};
但是。return {};
由于缺少类型信息,这将无法正常工作。
return new String[] { };
和 return new String[0];
都可以工作。 - Bombe我已经找到了答案,但还是想在 Stack Overflow 上“提问”一下。
String[] files = new String[0];
或者
int[] files = new int[0];
import org.apache.commons.lang3.ArrayUtils;
class Scratch {
public static void main(String[] args) {
String[] strings = ArrayUtils.EMPTY_STRING_ARRAY;
}
}
1. String[] str = new String[0];
2. String[] str = ArrayUtils.EMPTY_STRING_ARRAY;<br>
两者相同。
public static String[] getJavaFileNameList(File inputDir) {
String[] files = inputDir.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
return new File(current, name).isFile() && (name.endsWith("java"));
}
});
return files == null ? new String[0] : files;
}
null
。 - Blake