正如任何Java程序员所知,你不能将int(或其他原始值)放入集合中。集合只能保存对象引用,因此必须将原始值装入适当的包装类(在int的情况下为Integer)。当您从集合中取出对象时,您将获得放入的Integer;如果需要int,则必须使用intValue方法取消对Integer的装箱。所有这些装箱和拆箱都是一种痛苦,并使你的代码变得混乱。自动装箱和拆箱功能可自动完成整个过程,消除了痛苦和混乱。
还有其他方法可以将原始类型转换为非原始类似物吗?
答案 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年左右到达。