对于这个看似简单的问题,我找不到一个明确的答案.如果我编写这样的方法:
public Integer getAnInt() {
int[] i = {4};
return i[0];
}
返回值是自动装箱到Integer中,还是取决于返回值之后发生了什么(例如,赋给它的变量是声明为Integer还是int)?
对于这个看似简单的问题,我找不到一个明确的答案.如果我编写这样的方法:
public Integer getAnInt() {
int[] i = {4};
return i[0];
}
返回值是自动装箱到Integer中,还是取决于返回值之后发生了什么(例如,赋给它的变量是声明为Integer还是int)?
它将被(自动)装箱在字节码(.class
文件)中,因为它是公共API的一部分,所以其他代码可能依赖于返回值为Integer
.
在适当的情况下,装箱和取消装箱可能会在运行时被抖动移除,但我不知道它是否能做到这一点.