【发布时间】:2015-07-07 06:09:04
【问题描述】:
我试图通过 Apache commons 库中的 StringUtils.join(array, separator) 方法加入数组的元素。谁能解释一下,如果我使用像 int[] 这样的原始类型数组,为什么我不能得到结果字符串,只有一个指向它的位置的指针?
请看下面的示例代码:
public static void main(String[] args){
String[] s = new String[]{"Anna","has", "apples"};
System.out.println(StringUtilities.join(s, " "));
int[] a = new int[]{1,2,3};
System.out.println(StringUtilities.join(a, " "));
Integer[] b = new Integer[]{1,2,3};
System.out.println(StringUtilities.join(b, " "));
}
仅使用 Integer 数组有效。我知道原语数组在内部的处理方式与 ArrayList 或其他高阶对象不同,但是为什么有可能(或多或少相同的主题,但可能有不同的问题)实例化 HashMap<String, int[]> 而没有任何警告、异常?数组内部是否包含在另一个对象中?只适用于地图?从我从文档中读到的内容中,您无法使用原始类型对地图、集合、数组列表等进行参数化,这是我理解的,但是......我觉得有点令人困惑。任何合理的解释将不胜感激。谢谢。
【问题讨论】:
标签: java types return-value primitive