return与finally的执行顺序对返回值的影响

对于 try 和 finally 至少一个语句块包含 return 语句的情况:

  • finally 语句块会执行
  • finally 没有 return,finally 对 return 变量的重新赋值修改无效
  • try 和 finally 都包含return,return 值会以 finally 语句块 return 值为准

如下面的例子

  1. public static void main(String[] args) {
  2. System.out.println(getString());
  3. }
  4. public static String getString() {
  5. String str = "A";
  6. try {
  7. str = "B";
  8. return str;
  9. } finally {
  10. System.out.println("finally change return string to C");
  11. str = "C";
  12. }
  13. }

打印

  1. finally change return string to C
  2. B

finally 语句块中新增 return 语句

  1. public static void main(String[] args) {
  2. System.out.println(getString());
  3. }
  4. public static String getString() {
  5. String str = "A";
  6. try {
  7. str = "B";
  8. return str;
  9. } finally {
  10. System.out.println("finally change return string to C");
  11. str = "C";
  12. return str;
  13. }
  14. }

打印结果

  1. finally change return string to C
  2. C
Java

final与static的区别

2020-7-23 10:50:35

Java

String对象中的replace和replaceAll的区别?

2020-7-23 10:54:18

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索