java对象数组没有合适的构造函数
我不知道对象数组的合适构造函数。有这样的构造函数吗
Object[] newArr = new Object[this.count];
List result = new List (newArr);
这一行总是错误的:
error: no suitable constructor found for List(Object[])
List newArr = new List(result);
constructor List.List(String[]) is not applicable
(argument mismatch; Object[] cannot be converted to String[])
constructor List.List(Integer[]) is not applicable
(argument mismatch; Object[] cannot be converted to Integer[])
我该怎么办?我需要从一个新的对象数组中复制这个。arr(对象数组)
我真的对这部分感到困惑
# 1 楼答案
如果需要数组“支持”的
List
,可以使用Arrays.asList(yourArray)
。被“支持”意味着:add
,clear
等都不起作用^不过,{.set
)都可以在数组中看到李>如果您想要一个副本(也就是说,列表和数组是完全独立的;对其中一个的更改不会应用于另一个),您有几个选项:
new ArrayList<>(Arrays.asList(yourArray));
List.of(yourArray);
第一个是可变的(这意味着,结果列表对象可以以任何方式更改,例如使用
.add
或.clear
)。第二个是不变的:根本无法改变。这可能是有用的;例如,你可以把一个不可变的列表交给任何你想要的代码,而不用担心他们会从你下面改变你的列表。对于可变变体,你必须分发克隆,这会让你写起来很烦人,如果这个列表很大的话,内存也会很昂贵