gpt4 book ai didi

java - 是对象c;然后 c = new Integer(0);合法的?

转载 作者:行者123 更新时间:2023-12-01 07:44:24 24 4
gpt4 key购买 nike

假设我们有一个变量类型 Object

Object c;

假设我们想通过包装器实例化它。是

c = new Integer(0);

合法吗?

我认为这是因为 Object 类型是每个类的“父亲”,例如 Integer,它是一个包装类(向上转换)

最佳答案

是的,具有引用类型(例如Object)的变量可以保存对任何与赋值兼容的引用类型的实例的引用。与赋值兼容的引用类型有:

  • 变量自己的引用类型(在您的示例中为Object)。
  • 该类型的任何子类(在您的示例中,Integer,因为 IntegerObject 的子类)
  • 如果变量的引用类型是接口(interface),则为实现该接口(interface)的任何类。

有时,代码似乎违反了这些规则,例如:

Object c = 0; // Works just fine

这是因为 int 0自动装箱Integer 实例中,并且该实例的引用存储在c.

关于java - 是对象c;然后 c = new Integer(0);合法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56611045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com