猿问

new ClassName[0] 有什么作用?(Java 8)

这个语法是做什么的,用方括号括住数字?

new Integer[0];

我在我维护的代码库中找到了它,但我找不到关于它的任何文档。它是这样使用的:

Set<Form> forms = getForms();
List<Form> formsList = Arrays.asList(forms.toArray(new Form[0]))


慕容森
浏览 148回答 2
2回答

饮歌长啸

它分配一个长度为零的数组;例如new Integer[0]创建一个零长度的Integer对象数组。为什么要这么做?好吧,请查看该方法的 javadoc&nbsp;form.toArray(T[])。假设那是他们在这里form的一些子类型。Collection该方法的目的toArray是将目标集合(例如您的)的元素复制form到一个数组中:如果参数数组足够大以容纳所有元素,则将它们复制到该数组中。结果将是参数数组。如果参数数组太小,则分配一个新数组,其类型与参数数组相同,并且长度(刚好)足以容纳元素。然后将元素复制到新数组中,并将其作为结果返回。因此,代码实际做的是将 的元素复制form到合适大小的 an&nbsp;Integer[],然后包装数组以提供 (fixed sized)&nbsp;List<Integer>。然后可以将其传递给其他代码,而不必担心该代码可能会更改原始form集合。

泛舟湖上清波郎朗

与存储字符串、整数、布尔值等值的传统数组不同,对象数组存储对象。数组元素存储对象引用变量的位置语法:Class obj[]= new Class[array_length]
随时随地看视频慕课网APP

相关分类

Java
我要回答