【发布时间】:2014-09-24 09:37:48
【问题描述】:
我试图将 int 数组转换为 Set<Integer>。
int[] arr = {5, 2, 7, 2, 4, 7, 8, 2, 3};
Set<Integer> s = new HashSet<Integer>(Arrays.asList(arr));
但是编译器不接受上面的代码。它说:“构造函数 HashSet(List) 未定义。”好吧,我认为 int 应该自动装箱。
我稍微修改了代码,把int改成String:
String[] arr = {"hello", "world"};
Set<String> s = new HashSet<String>(Arrays.asList(arr));
此代码可以正常工作。
我尝试了以下,将int更改为Integer:
Integer[] arr = {5, 2, 7, 2, 4, 7, 8, 2, 3};
Set<Integer> s = new HashSet<Integer>(Arrays.asList(arr));
这是通过编译。
我的问题是:为什么java编译器不接受第一个代码?
【问题讨论】:
-
这可能会对您有所帮助。 stackoverflow.com/questions/25890806/…