Java中自动装箱的替代方案是什么?

时间:2016-08-29 18:25:47

标签: java

正如任何Java程序员所知,你不能将int(或其他原始值)放入集合中。集合只能保存对象引用,因此必须将原始值装入适当的包装类(在int的情况下为Integer)。当您从集合中取出对象时,您将获得放入的Integer;如果需要int,则必须使用intValue方法取消对Integer的装箱。所有这些装箱和拆箱都是一种痛苦,并使你的代码变得混乱。自动装箱和拆箱功能可自动完成整个过程,消除了痛苦和混乱。

还有其他方法可以将原始类型转换为非原始类似物吗?

3 个答案:

答案 0 :(得分:1)

根本不需要intValue()

        List<Integer> list = new ArrayList();
        list.add(3);
        list.add(new Integer(70));
        int x = list.get(0) + 600;
        if (x > 800) {
            x = new Integer(80);
        }

(但可能有一些pitfalls ...

答案 1 :(得分:0)

不确定为什么要放弃自动装箱和拆箱功能。但这就是不使用它们的样子。

    int number = 5;
    Integer num = new Integer(number);

答案 2 :(得分:0)

我认为您正在寻找一种using static DataAccessLayer.DataAccess; 替代方案,它实际上包含原始数据类型,而不是知道您可以避免List次调用(看起来您已经知道这些问题接近问题的结尾) )。

在Java类库中没有直接存储原始数据类型的intValue实现,但第三方库基本上支持这一点,例如Apache Commons' ArrayIntList

好消息是,它计划允许将原始类型用作Java 10的泛型类型参数。但Java 10将在2018年左右到达。

相关问题