为什么在Java中使用标签是一种不好的做法?我找不到理由。所有的解释 - 你不应该仅仅因为你不应该使用它。Java中的标签 - 不好的做法?
1
A
回答
1
很难将包含break
的代码读取到标签。此外,标签可能会意外移动,或者代码插入标签的相对位置不正确。由于代码在语法上是有效的,因此编译器无法警告您这些影响。
难以阅读的代码难以维护。错误难免会蠕变。
其他控制结构(break
,continue
,while
,for
,等)不从这个苦。
请注意,标签的switch
也不会受到这些影响:switch
块的结构是明确定义的。
打破嵌套循环的最明智的选择是将代码重新编码为函数并使用return
。您还可以获得(可能)将值返回给调用者的额外好处。
1
我认为你指的是中断并继续标记。
的问题是,标休息(继续)是命令式语言的结构,它是绝对没有涉及到面向对象。
在面向对象的程序中,可以很容易地理解流程。无法从部分代码跳转到另一部分代码,只能调用方法或继续当前代码或退出当前代码块。
从一个位置跳转到另一个位置是可能的中断点,您的应用程序可以轻松地发生错误。跳跃创建所谓的spaghetti code
0
标签很适合摆脱嵌套的for-loops。我建议把嵌套的循环放在一个单独的方法中,然后用return
来解决。
问题是复杂的处理流程变得很难遵循。
0
带有标记的中断(和更小的中断)与旧语言(FORTRAN,COBOL,Basic)的旧GOTO语句相当。发现Goto语句比其他类型的语句更加容易产生错误 - 我记得这个研究测量出的可能性是9倍。这引起了70年代的“结构化编程”运动,并禁止了当时一些软件商店的goto声明。
能够轻松读取代码比能够无限制地编写代码更重要。
相关问题
- 1. 用标签围绕li标签是不好的做法吗?
- 2. 是Interface作为标签在Java OO中的一个不好的做法?
- 3. 是Java反思不好的做法?
- 4. 在c#中做更换标签的更好方法?
- 5. 国际化标题/元标签好还是坏的做法?
- 6. 使用Java标准密钥存储库是不好的做法
- 7. 将React渲染中的HTML标签设置为null是不好的做法吗?
- 8. 使用多个标题标签被认为是“不好的做法”吗?
- 9. 在Django中使用模板标签检索数据是不好的做法吗?
- 10. 良好的做法或不好的做法
- 11. Bundle Node.js后端 - 良好的做法或不好的做法?
- 12. 好的做法或不好的做法更新实例变量
- 13. “继续”不好的做法?
- 14. 这是不好的做法?
- 15. 这是不好的做法?
- 16. <cite> html标签更好的做法
- 17. 是<iframe>不好的做法?
- 18. Java - 在try/catch中执行try/catch是不好的做法吗?
- 19. 在Java中使用Object.getClass()是不好的做法吗?
- 20. 在Java中使用`this`是不好的做法吗?
- 21. Java异常处理的良好做法
- 22. 使用多个位置标签进行授权是不好的做法吗?
- 23. 在java中的方法的良好做法
- 24. 班级中的示例数据 - 好的或不好的做法?
- 25. rel =“tooltip”,这是不好的做法?
- 26. 使用Sun专有的Java类是不好的做法?
- 27. 不使用if(file_exists)不好的做法?
- 28. 标签导航的最佳做法?
- 29. 带“#”的href,这是不好的做法?
- 30. CakePHP Auth内的routes.php,不好的做法?
这是我能找到的最好的解释: http://programmers.stackexchange.com/questions/185944/java-labels-to-be-or-not-to-be –