方法的java文档 String[] java.io.File.list(FilenameFilter filter) 在退货说明中包括:如果目录为空或筛选器不接受任何名称,则数组将为空。如何做类似的事情并初始化字符串数组(或任何其他数组)使其长度为0?
String[] java.io.File.list(FilenameFilter filter)
frebpwbc1#
制作一个不会返回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; }
yvfmudvl2#
您可以使用org.apache.commons.lang3中的arrayutils.empty_string_数组
import org.apache.commons.lang3.ArrayUtils; class Scratch { public static void main(String[] args) { String[] strings = ArrayUtils.EMPTY_STRING_ARRAY; } }
lymgl2op3#
String[] str = new String[0]; ?
String[] str = new String[0];
pxq42qpu4#
好吧,我确实找到了答案,但我想我还是会把这个问题“导入”到so中 String[] files = new String[0]; 或 int[] files = new int[0];
String[] files = new String[0];
int[] files = new int[0];
esbemjvw5#
正如其他人所说,
new String[0]
确实会创建一个空数组。但是,数组有一个优点——它们的大小不能改变,因此可以始终使用相同的空数组引用。因此,在代码中,可以使用:
private static final String[] EMPTY_ARRAY = new String[0];
然后再回来 EMPTY_ARRAY 每次你需要它-没有必要每次都创建一个新的对象。
EMPTY_ARRAY
yquaqz186#
String[] str = {};
但是
return {};
类型信息丢失,无法工作。
6条答案
按热度按时间frebpwbc1#
制作一个不会返回null的函数,而是返回一个空数组,您可以通过下面的代码来理解。
yvfmudvl2#
您可以使用org.apache.commons.lang3中的arrayutils.empty_string_数组
lymgl2op3#
String[] str = new String[0];
?pxq42qpu4#
好吧,我确实找到了答案,但我想我还是会把这个问题“导入”到so中
String[] files = new String[0];
或int[] files = new int[0];
esbemjvw5#
正如其他人所说,
确实会创建一个空数组。但是,数组有一个优点——它们的大小不能改变,因此可以始终使用相同的空数组引用。因此,在代码中,可以使用:
然后再回来
EMPTY_ARRAY
每次你需要它-没有必要每次都创建一个新的对象。yquaqz186#
但是
类型信息丢失,无法工作。