栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

无限循环中断方法签名而没有编译错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无限循环中断方法签名而没有编译错误

}
方法的最终版本无法访问-只有在可能返回方法末尾而不返回值的情况下,您才会收到编译错误。

这在由于异常而导致方法的末尾无法到达的情况下更有用。

private String find(int minLength) {    for (String string : strings) {        if (string.length() >= minLength) { return string;        }    }    throw new SomeExceptionIndicatingTheProblem("...");}

规则在JLS第8.4.7节中:

如果声明某个方法具有返回类型(第8.4.5节),则如果该方法的主体可以正常完成(第14.1节),则会发生编译时错误。

您的方法无法正常完成,因此没有错误。重要的是,不仅是它不能正常完成,而且规范还 承认 它不能正常完成。从JLS
14.21开始

while
当且仅当下面至少有一个为真语句可以正常完成:

  • while
    语句是可到达的,条件表达式不是带有value的常数表达式(第15.28节)
    true
  • 有一个可到达的
    break
    语句退出该
    while
    语句。

在您的情况下,条件表达式
一个带有value的常量

true
,并且没有任何
break
语句(可到达或其他方式),因此该
while
语句无法正常完成。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508095.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号