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