我怎样才能初始化在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; }