繁体   English   中英

我为什么要避免使用Java标签语句?

[英]Why should I avoid using Java Label Statements?

互联网上的每个人都说你应该避免在java中使用标签语句。 但是,我发现它们在某些情况下非常有用,即嵌套循环。
我找不到令人满意的答案,为什么不使用它们。 我认为标签的替代品往往会降低可读性或性能,或两者兼而有之。

那么什么使得标记的破坏和继续陈述如此糟糕?

标签完全可以打破嵌套的for循环。

PS:就个人而言,我建议(并且我与Kent Beck一致,请参阅他的实现模式书)将嵌套循环放在一个单独的方法中,然后以return方式突破,但这会引发愤怒的“单一回归点“人们对我说。 互联网,哦,互联网。

我发现标记的断点和继续声明都是完全没必要的。 这只是一种风格。 还有其他方法可以达到相同的效果,很多人更喜欢这些。

最常见的争论是,他们很难为初学者解释。 另一个论点是(太多)嵌套循环被认为是不好的做法; 换句话说,当你看到一个标签时,几乎可以肯定是一个嵌套的循环,这使得标签因此隐含着坏。 通常的做法是将嵌套循环重构为方法。 这应该提高可维护性和其他类似的东西。 但是,如果嵌套循环只是在几行代码中没有做明显的事情,那么在我看来它是完全可以承受的。

只要方法只做一件事,只做一件事并做得好,就不需要避免标签。

但是,如果需要标记的中断和继续语句,只需进行快速的心理检查,如果方法仍然具有足够的内聚性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM