我怎样才能初始化在Java中的长度为0的string数组?
该方法的Java文档
String[] java.io.File.list(FilenameFilter filter)
在返回描述中包含这个:
如果目录为空或者filter没有接受名称,则数组将为空。
我如何做一个类似的事情,并初始化一个string数组(或任何其他数组)的长度为0?
正如其他人所说,
new String[0]
确实会创build一个空的数组。 然而,数组有一个好处 – 它们的大小不能改变,所以你总是可以使用相同的空数组引用。 所以在你的代码中,你可以使用:
private static final String[] EMPTY_ARRAY = new String[0];
然后每次只需要返回EMPTY_ARRAY
就可以了 – 每次都不需要创build一个新的对象。
String[] str = new String[0];
?
String[] str = {};
但
return {};
将不会工作,因为types信息丢失。
好吧,我确实find了答案,但是我认为我会将这个问题导入到SO中
String[] files = new String[0];
要么
int[] files = new int[0];
做一个不会返回null的函数,而是返回一个空的数组,你可以通过下面的代码来理解。
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; }