对于这个看似简单的问题,我找不到一个明确的答案.如果我编写这样的方法:

public Integer getAnInt() {
  int[] i = {4};
  return i[0];
}

返回值是自动装箱到Integer中,还是取决于返回值之后发生了什么(例如,赋给它的变量是声明为Integer还是int)?

推荐答案

Yes, boxed

它将被(自动)装箱在字节码(.class文件)中,因为它是公共API的一部分,所以其他代码可能依赖于返回值为Integer.

在适当的情况下,装箱和取消装箱可能会在运行时被抖动移除,但我不知道它是否能做到这一点.

Java相关问答推荐

为什么JFrame paint()多次绘制同一点(或根本不绘制)?

使用动态ID从json获取详细信息的Jolt规范

Kubernetes的Java客户端检索状态.处于终止状态的Pod的阶段';正在运行';

编译多个.Java文件并运行一个依赖于用户参数的文件

Java中实现的归并排序算法给出ArrayIndexOutOfBound异常

具有阻塞方法的开源库是否应该为执行提供异步选项?

无法使用ApacheSpark依赖项构建JavaFX应用程序

无法在Java中处理PayPal支付响应

Arrays.hashcode(int[])为不同的元素提供相同的散列

迁移到Java 17后,日期显示不准确

扩展视图高度,并将其拖动到较低的视图上,而不是将其向下推?

Java页面筛选器问题

如何在ApacheHttpClient 5中为单个请求设置代理?

获取所有可以处理Invent.ACTION_MEDIA_BUTTON Android 13 API33的Android包

Java List有一个在一个位置添加多个元素的方法,但我找不到一个在一个位置删除多个元素的方法

为什么我的登录终结点不能被任何请求访问?

如果c不为null,Arrays.sort(T[]a,Comparator<;?super T>;c)是否会引发ClassCastException?

获取401未经授权,即使在标头中设置了浏览器名称和cookie

将Optionals/null安全添加到嵌套的flatMap/流

元音变音字符:如何在 Java 中将Á<0x9c>转换为Ü?