有以下代码:
public class FinallyTest1
{
public static void main(String args[])
{
System.out.println("return: " + new FinallyTest1().getMessage().message);
}
public Message getMessage()
{
Message returnMessage = new Message();
try
{
returnMessage.message = "message";
return returnMessage;
}finally
{
System.out.println("execute finally...");
System.out.println("before clean returnString's value: " + returnMessage.message);
returnMessage.message = null;
System.out.println("after clean returnString's value: " + returnMessage.message);
System.out.println("execute finally end.");
}
}
}
class Message
{
public String message = "message";
}
输出结果是:
execute finally...
before clean returnString's value: message
after clean returnString's value: null
execute finally end.
return: null
本文探讨了Java中finally块如何影响方法的返回值。通过一个具体示例展示了当finally块内修改了即将返回的对象状态时,外部所观察到的变化。
2196

被折叠的 条评论
为什么被折叠?



