您是否有一个标准的位置来访问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)非常感谢,
干杯 西蒙
答案 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;