我有一个方法,它接受Object类型的参数:
public static void test(Object foo)
{
System.out.println(foo);
}
我可以传递foo:字符串,整数,布尔值等......几乎任何东西。我认为这是可能的,因为Object是其他所有内容继承自的基类,因此它接受任何数据类型都是有效的。我可以理解像Strings和Arrays这样的对象就是这种情况。但为什么这是原始类型的情况?整数,字符和布尔值是否也从Object继承?
答案 0 :(得分:6)
不,原始类型不继承自Object
,因为它们不是类。将原始类型从Java 5+传递给此方法时会发生什么,称为autoboxing,编译器会将原语转换为其中一个包装类。例如,int
将自动转换为Integer
(使用幕后的临时变量),这将使代码可编辑。
答案 1 :(得分:1)
在这个拳击中然后加宽发生....例如:如果很长那么它第一个框进入Long然后加宽到对象类