此语法在数字的方括号内做什么?
new Integer[0];
我已经在维护的代码库中找到它,但是找不到任何文档。它的用法如下:
Set<Form> forms = getForms();
List<Form> formsList = Arrays.asList(forms.toArray(new Form[0]))
答案 0 :(得分:1)
它分配一个长度为零的数组;例如new Integer[0]
创建一个由Integer
个对象组成的零长度数组。
您为什么要这么做?
再来看一下form.toArray(T[])
方法的javadocs。假设form
是Collection
的某种子类型,它们就是here。
toArray
方法的目的是将目标集合的元素(例如您的form
)复制到数组中:
如果参数数组足够容纳所有元素,则将它们复制到该数组中。结果将是参数数组。
如果参数数组太小,则会分配一个新数组,其类型与参数数组相同,并且长度(仅)足以容纳元素。然后将元素复制到新数组中,并作为结果返回。
因此,代码的实际操作是将form
的元素复制到正确大小的Integer[]
,然后包装该数组以给出(固定大小)List<Integer>
。然后可以将其传递给其他代码,而不必担心该代码可能会更改原始的form
集合。
答案 1 :(得分:0)
与存储诸如字符串,整数,布尔值等值的传统数组不同。对象数组存储对象。数组元素存储对象的引用变量的位置
语法: Class obj [] = new Class [array_length]