gpt4 book ai didi

java - 如果 Java 不支持运算符重载,那么增量运算符如何在 Integer 实例上工作?

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

我读到 Java 不支持运算符重载。然后,我想知道如何在 Integer 类的实例上使用增量运算符。

Integer number = new Integer(10);
System.out.println(++number);

上面的代码编译良好,没有错误。但假设我创建了自己的类,只有一个成员变量(一个整数),并尝试使用增量运算符。它会给我一个编译器错误。这是为什么?

最佳答案

这是在 Integer 对象上调用增量运算符时执行的操作序列:

  1. Integer 包装对象被拆箱为 int 基元(使用 intValue() 方法)。
  2. 原语递增。
  3. 增量基元会自动装箱为 Integer 包装对象。

因此,实际上,该运算符实际上应用于 int 原语,而不是对象。此行为仅为原始包装类的对象定义,无法使您自己的类以类似的方式运行。

参见here有关自动装箱和拆箱的更多信息。

关于java - 如果 Java 不支持运算符重载,那么增量运算符如何在 Integer 实例上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34735210/

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