Dav*_*lle 29 java generics autoboxing
我有这样的方法:
public static <T> boolean isMemberOf(T item, T[] set)
{
for (T t : set) {
if (t.equals(item)) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
现在我尝试使用charfor 调用此方法T:
char ch = 'a';
char[] chars = new char[] { 'a', 'b', 'c' };
boolean member = isMemberOf(ch, chars);
Run Code Online (Sandbox Code Playgroud)
这不起作用.我期望char,并char[]得到autoboxed至Character和Character[],但是这似乎并没有发生.
任何见解?
Edd*_*die 41
数组没有自动装箱,仅适用于基元.我相信这是你的问题.
Jon*_*eet 14
为什么char[]要装箱Character[]?数组总是引用类型,因此不需要装箱.
此外,它将非常昂贵 - 它将涉及创建一个新的数组,然后轮流装箱每个char.哎呀!