孙金鑫 发表于 2013-5-6 23:45
代码应该这样修改才能说明问题:- public class Demo456 {
- public static void main(String[] args) {
- boolean[] arr = new boolean[2];
- demo(arr);
- System.out.println(arr[0]+" "+arr[1]);
- }
-
- @SuppressWarnings("finally")
- static boolean demo(boolean[] arr) {
- try {
- arr[0] = true;
- return arr[0];
- }finally {
- arr[1] = false;
- return arr[1];
- }
- }
- }
复制代码 运行的结果说明:确实是因为finally中的代码是必须执行的代码,而一个方法只能有一个返回值,所以finally中的返回值覆盖了try中的返回值。 |