当代码流程如下时:
有没有一些更好的方法来避免这种变通/黑客,使其成为更高级别(行业级别)的代码?
也许有些结构来自Apache commons或Google Guava?
注意:这是相同问题的C++版本的副本。那里最好的答案是真正的函数指针和GOTO命令。这两个在Java中都不存在。我非常感兴趣了解Java的同样情况。
将其放入一个新函数并使用return,在我看来不是一个好的解决方案,因为返回会退出该方法。因此,如果我的类有20个带有这些结构的方法,我需要添加20个额外的方法才能完成这项工作。这就是为什么GOTO是C ++的最佳答案的原因。
if(check())
{
...
...
if(check())
{
...
...
if(check())
{
...
...
}
}
}
我通常看到的解决方法是避免这种混乱的代码流:
do {
if(!check()) break;
...
...
if(!check()) break;
...
...
if(!check()) break;
...
...
} while(false);
有没有一些更好的方法来避免这种变通/黑客,使其成为更高级别(行业级别)的代码?
也许有些结构来自Apache commons或Google Guava?
注意:这是相同问题的C++版本的副本。那里最好的答案是真正的函数指针和GOTO命令。这两个在Java中都不存在。我非常感兴趣了解Java的同样情况。
将其放入一个新函数并使用return,在我看来不是一个好的解决方案,因为返回会退出该方法。因此,如果我的类有20个带有这些结构的方法,我需要添加20个额外的方法才能完成这项工作。这就是为什么GOTO是C ++的最佳答案的原因。
do
和while(false);
部分是不必要的 - 只需使用一个普通块({ if (!check()) break; })即可。 - Sam Marsh