如何在java中初始化长度为0的字符串数组?

kyvafyod  于 2021-07-05  发布在  Java
关注(0)|答案(6)|浏览(631)

方法的java文档 String[] java.io.File.list(FilenameFilter filter) 在退货说明中包括:
如果目录为空或筛选器不接受任何名称,则数组将为空。
如何做类似的事情并初始化字符串数组(或任何其他数组)使其长度为0?

frebpwbc

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;
}
yvfmudvl

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;
        }
    }
lymgl2op

lymgl2op3#

String[] str = new String[0]; ?

pxq42qpu

pxq42qpu4#

好吧,我确实找到了答案,但我想我还是会把这个问题“导入”到so中 String[] files = new String[0];int[] files = new int[0];

esbemjvw

esbemjvw5#

正如其他人所说,

new String[0]

确实会创建一个空数组。但是,数组有一个优点——它们的大小不能改变,因此可以始终使用相同的空数组引用。因此,在代码中,可以使用:

private static final String[] EMPTY_ARRAY = new String[0];

然后再回来 EMPTY_ARRAY 每次你需要它-没有必要每次都创建一个新的对象。

yquaqz18

yquaqz186#

String[] str = {};

但是

return {};

类型信息丢失,无法工作。

相关问题