这实际上与我之前提出的一个问题有关,但我一直在关注这个细节。我仅限于 Java 1.4,我想将int
类型转换为Object
. 我真的需要使用Integer
类对象还是有办法直接转换它(1.4 中没有自动装箱)。这种“手动装箱”的成本是否值得将整个类从第 3 层导入到第 1 层,从而增加耦合?
问问题
19664 次
2 回答
9
在 Java 1.4 中没有简单的方法可以将原语转换为其基于对象的孪生体,但是有一种慢速和快速的方法。new Integer(int)
很慢,Integer.valueOf(int)
很快。对于所有其他数字类型也是如此。
在 Java 5 中,您不需要那么多代码,但在内部,valueOf()
当您使用自动装箱时,编译器会为您插入一个调用。
于 2011-03-16T14:11:35.793 回答
4
在 Java 1.4 环境中,不能将 int 强制转换为 Object,因为它不是 Object。
Java 区分原始类型和引用类型。int 是原始类型。boolean、byte、char、short、long、float 和 double 也是如此。
引用类型的值是对某个对象的引用。“对象”是所有对象的根类。
在 Java 1.5 及更高版本中,自动装箱将导致第二个变量指向一个与原始变量具有相同值的 Integer 对象i
。
int i = 99;
Object o = (Object) i;
于 2011-03-16T14:10:02.310 回答