Java:基元数据类型数组不自动框

2022-09-01 10:22:39

我有一个这样的方法:

public static <T> boolean isMemberOf(T item, T[] set)
{
    for (T t : set) {
        if (t.equals(item)) {
            return true;
        }
    }
    return false;
}

现在我尝试使用 for 调用此方法:charT

char ch = 'a';
char[] chars = new char[] { 'a', 'b', 'c' };
boolean member = isMemberOf(ch, chars);

这不起作用。我希望 将 和 自动装箱到 和 ,但这似乎没有发生。charchar[]CharacterCharacter[]

有什么见解吗?


答案 1

数组没有自动装箱,只有基元自动装箱。我相信这是你的问题。


答案 2

为什么会被装箱到?数组始终是引用类型,因此不需要装箱。char[]Character[]

此外,这将是非常昂贵的 - 它将涉及创建一个新数组,然后依次装箱每个字符。哎呀!


推荐