我有一个接受对象类型参数的方法:
public static void test(Object foo)
{
System.out.println(foo);
}
我可以传递 foo:字符串、整数、 boolean 值等……几乎任何东西。我认为这是可能的,因为 Object 是其他所有东西都继承自的基类,因此它接受任何数据类型都是有效的。我可以理解字符串和数组等对象的情况。但是为什么原始类型会出现这种情况呢? integer、char、boolean 也继承自 Object 吗?
最佳答案
不,基本类型不继承自Object
,因为它们不是类。当您将原始类型从 Java 5+ 传递给此方法时会发生什么称为 autoboxing ,编译器会将您的原语转换为包装类之一。例如,int
将自动转换为 Integer
(在幕后使用临时变量),这将使代码可编译。
关于java - 是否每种数据类型都继承自 Object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26291463/