JDK中空字符串数组的标准位置

时间:2010-03-22 15:04:52

标签: api java idioms

您是否有一个标准的位置来访问JDK中的空数组常量> 1.5。

当我想从String Collection(例如ArrayList)转换为String Array时,我发现自己使用了自己的 这是在我自己的Constants类中定义的:

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

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

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

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

任何想法,答案,评论(除此之外我不应该真正使用String Arrays)非常感谢,

干杯 西蒙

2 个答案:

答案 0 :(得分:2)

我建议使用以下代码:

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

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

  

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

答案 1 :(得分:1)

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

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