该方法的 Java 文档 String[] java.io.File.list(FilenameFilter filter) 在报税表的说明中包括:
String[] java.io.File.list(FilenameFilter filter)
如果目录为空,或者筛选器未接受任何名称,则数组将为空。
我如何做类似的事情,并初始化一个字符串数组(或任何其他数组为此事)的长度为0?
好吧,我实际上找到了答案,但认为我会’导入’的问题到所以无论如何
String[] files = new String[0]; 或者 int[] files = new int[0];
String[] files = new String[0];
int[] files = new int[0];
String[] str = new String[0];?
String[] str = new String[0];
String[] str = {};
但是
return {};
由于类型信息丢失,无法正常工作。
正如其他人所说,
new String[0]
将确实创建一个空数组。然而,数组有一个好处——它们的大小不能改变,所以您总是可以使用相同的空数组引用。因此,在代码中,您可以使用:
private static final String[] EMPTY_ARRAY = new String[0];
然后在每次需要时返回 EMPTY_ARRAY-不需要每次都创建一个新对象。
EMPTY_ARRAY
创建一个不返回 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; }
可以使用 org.apache.commanss.lang3中的 ArrayUtils.EMPTY _ STRING _ ARRAY
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>
两者都是一样的。