2

嗨,在 JDK > 1.5 中是否有访问空数组常量的标准位置。

当我想将字符串集合(例如 ArrayList)转换为字符串数组时,我发现自己在使用我自己的常量类中定义的字符串:

public static final String[] EMPTY_STRING_ARRAY = new String[0];

然后在我的客户端代码中类似于:

String[] retVal = myStringList.toArray(Constants.EMPTY_STRING_ARRAY);
return retVal;

我想知道这是否是“惯用的”方式,或者我是否遗漏了一些东西,我从我所做的简短搜索中得到的印象是这种事情在许多人的代码中很普遍。

非常感谢任何想法、答案、评论(除此之外我不应该真正使用字符串数组),

干杯西蒙

4

2 回答 2

2

我会推荐以下代码改进:

String[] retval = myStringList.toArray(new String[myStringList.size()]);

这样, toArray 方法使用提供的、适当大小的数组作为容器,而不是在幕后创建一个新数组。从 ArrayList javadoc :

如果列表适合指定的数组,则在其中返回。否则,将使用指定数组的运行时类型和此列表的大小分配一个新数组。

于 2010-03-22T15:15:32.077 回答
1

在任何地方的 JDK 中都没有像这样的数组定义。在 JDK 中执行此操作的唯一两种标准方法是您列出的方法或

String ret[] = new String[myStringList.size()];
myStringList.toArray(ret);
return ret;
于 2010-03-22T15:14:50.657 回答