如何在Java中初始化长度为0的String数组?

时间:2009-11-03 07:49:10

标签: java arrays initialization

方法的Java Docs
String[] java.io.File.list(FilenameFilter filter)
在退货说明中包含此内容:

  

如果目录为空或者过滤器没有接受任何名称,则数组将为空。

我如何做类似的事情并初始化一个String数组(或任何其他数组),长度为0?

8 个答案:

答案 0 :(得分:205)

正如其他人所说,

new String[0]

确实会创建一个空数组。但是,有一个关于数组的好处 - 它们的大小不能改变,所以你总是可以使用相同的空数组引用。因此,在您的代码中,您可以使用:

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

然后每次需要时返回EMPTY_ARRAY - 每次都不需要创建新对象。

答案 1 :(得分:21)

String[] str = new String[0];

答案 2 :(得分:16)

String[] str = {};

但是

return {};

不起作用,因为缺少类型信息。

答案 3 :(得分:11)

好的,我确实找到了答案,但我认为无论如何我都会将问题'导入'到

String[] files = new String[0];

int[] files = new int[0];

答案 4 :(得分:1)

您可以使用org.apache.commons.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;
        }
    }

答案 5 :(得分: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;
}

答案 6 :(得分:0)

您可以使用以下内容-

grep

两者都一样。

答案 7 :(得分:-1)

您要做的就是

@RequestMapping()

这将给出一个空的字符串数组。

From my video

谢谢ItsPete! 这个答案仍然很重要,因为它显示了String如何为空以及如何工作。例如,一个int数组无法调整大小或更改为另一个大小,因为该0是整数。将会出现ArrayIndexOutOfBoundsException错误。字符串和整数之间必须有区别。但是,同样,String具有双引号并可以调整大小。 当然,这是更长的路。它仍然显示int和主要是String之间的推理。