首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中标记空条件块

问如何在Java中标记空条件块
EN

Software Engineering用户
提问于 2011-11-19 16:45:43
回答 2查看 11.7K关注 0票数 3

在C++中,当我想通过设计标记if为空时,我添加了NULL;作为语句:

代码语言:javascript
复制
if (cond1) {
    ...
} else if (cond2) {
    NULL;
} else {
    ...
}

然而,在Java中,使用null;作为语句似乎是不可能的。如果使用Java (仅仅是注释),通过设计标记空值的正确方法是什么?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2011-11-19 19:03:22

第一,这是如何:

代码语言:javascript
复制
if (cond1) {
    ...
} else if (cond2) {
    NULL;
} else {
    ...
}

胜过:

代码语言:javascript
复制
if (cond1) {
    ...
} else if (cond2) {

} else {
    ...
}

NULL;-statement什么也不告诉,是吗?

第二,正如其他人所指出的,你不必有那个空块,除非你需要说一些关于这个条件的东西,或者可能留出空间来处理它。

因此,这是完全合理的:

代码语言:javascript
复制
if (cond1) {
    ...
} else if (cond2) {
    //cond2 is not handled, because 2 is the smallest prime number
} else {
    ...
}

或者这个:

代码语言:javascript
复制
if (cond1) {
    ...
} else if (cond2) {
    //TODO: investigate whether/how this condition needs to be handled
} else {
    ...
}

但是,不管您是否在其中编写NULL;,无文档的空结果都是没有用的。

最后,如果您觉得有太多的条件,那么您应该研究行为模式和多态在一般情况下是如何帮助您清理代码的。

票数 5
EN

Software Engineering用户

发布于 2011-11-19 16:53:48

这完全是一种糟糕的做法,你一开始就不应该有这样的做法。如果你在一个条件下没有反应,那就不要对它进行编码。这是一种代码气味,几乎不包含任何有用的信息。使用它来设计一个程序流更糟糕,因为它总是可以更优雅地表达出来。

正确的处理方法是删除不可缺少的else if或重写条件,而不是为空块设置标记。

在您的例子中,应该是:

代码语言:javascript
复制
if (cond1) 
{
    ...
}
else if(!cond2)
{
    ...
}

如果这些条件写起来很繁琐,或者太难阅读,那么就将它们封装在一个方法中,或者对它们进行一次计算,并将它们保存到一个变量中。

如果你真的很想表达为什么你没有处理某个条件,在方法或语句上面写一个注释。

票数 11
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/120658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档