当前位置:  开发笔记 > 编程语言 > 正文

Java:原始数据类型的数组不是autobox

如何解决《Java:原始数据类型的数组不是autobox》经验,为你挑选了2个好方法。

我有这样的方法:

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

现在我尝试使用charfor 调用此方法T:

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

这不起作用.我期望char,并char[]得到autoboxed至CharacterCharacter[],但是这似乎并没有发生.

任何见解?



1> Eddie..:

数组没有自动装箱,仅适用于基元.我相信这是你的问题.


而且Java的限制,恕我直言.
是的,这就是问题所在.这对我来说似乎是如此......或者至少是反直觉的.

2> Jon Skeet..:

为什么char[]要装箱Character[]?数组总是引用类型,因此不需要装箱.

此外,它将非常昂贵 - 它将涉及创建一个新的数组,然后轮流装箱每个char.哎呀!


从技术角度来看,我完全同意你的看法.从以用户为中心的角度来看,这似乎应该"正常工作".(我想如果不是首先使用原始类型,这根本就不是问题)
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有