应该使用last语句return和非void返回类型方法吗?但这仍然有效.
public String test()
{
try
{
// Do my work
return "myValue";
}
finally
{
System.out.println("I'm in Finally");
}
}
Run Code Online (Sandbox Code Playgroud)
我有点缺乏了解这项工作的知识.有人能解释我吗?
这段代码没有问题,因为通过它的每条可能的路径都不可避免地导致return声明*.它不必是文本上的最后一个语句,只要它是逻辑上的最后一个语句(Java编译器足够聪明,可以弄清楚它是否如此,如果有代码中的路径没有返回,则会给出错误)价值或抛出异常).在命中return(即你的finally块)之后会有代码执行的事实不会改变任何东西:就编译器而言,你的函数在退出函数之前提供了一个返回值.
*实际上,只有一条路径通过你的函数代码,它终止于return语句.
| 归档时间: |
|
| 查看次数: |
1222 次 |
| 最近记录: |