【发布时间】:2013-08-10 06:10:00
【问题描述】:
我试过下面的代码sn-p:
private Integer getnumber() {
Integer i = null;
try {
i = new Integer(5);
return i;
} catch(Exception e) {
return 0;
} finally {
i = new Integer(7);
}
}
此方法返回 5 而不是 7。
为什么它返回 5 而不是 7?
提前致谢。
【问题讨论】:
-
非常简短的回答“当你说 return i 时,i 的值已经在堆栈中更新了”,所以当你稍后更新它时它不会更新
-
@Algorithmist 这是正确的,返回值已经在堆栈中,以后更改值不会影响。将其移至答案。
-
@user2669894,你的问题在这里有很详细的解释,stackoverflow.com/questions/8864230/…,请查收。
标签: java