1. try和finally同时return
public class test1
{
public static void main(String args[])
{
int i = 0;
test1 t1 = new test1();
i = TestOfTryFinally(i);
System.out.println("i");
}
public int TestOfTryFinally(int i)
{
try
{return i;}
finally
{return i++}
}
}
输出结果
2. finally修改try中return的值
如果修改函数为
public int TestOfTryFinally(int i)
{
try
{return i;}
finally
{i++;}
}
结果为
结论
众所周知,finally是在try执行完之后执行的。所以不难理解finally的return会会覆盖try的return。至于finally对于try返回值的修改,try在return时,需要return的值已经固定(猜:已写入某一个地方储存着了)。finally中修改后值会变(储存地的值不变)但是不影响他的返回。