返回类型为void的java方法应该使用return语句吗?
我知道有时在Java中使用return;
可以起到有用的作用,比如在保护方面:
public void foo(Bar bar) {
if(bar == null)
return;
// bar is not null, go ahead and do stuff with it
}
但是,对于返回类型为void
的方法来说,仅仅到达其末尾又如何呢?比如
public void printMenu() {
System.out.println("Print out some boilerplate info here, line 1.");
System.out.println("Print out some boilerplate info here, line 2.");
System.out.println("Print out some boilerplate info here, line 3.");
return;
}
除了纯粹的风格偏好之外,还有什么理由支持或反对加入return;
?如果是,它们是什么
编辑:这个问题很快得到了回答。总结以下15个答案:“否。”
# 1 楼答案
纯粹基于风格的问题,完全没有区别(可能是额外的asm指导,但谁在乎呢?)。做任何你觉得更舒服的事情,或者遵循之前在准则中建立的惯例
# 2 楼答案
我说永远不要这样做。void函数中的返回语句仅用于中断语句的逻辑。如果你开始这样做,那么你会向代码的读者发送一条令人困惑的语句,人们会很容易认为,也许你计划使用一些你忘记的If语句。总是追求可读性
# 3 楼答案
关于structured programming的一个想法是:
每个例行程序都应该有一个入口点和一个出口点
如果您订阅了该策略,那么
return
语句指示退出例程的唯一方法在实践中,这一政策并没有让代码更清晰,而且自20世纪70年代以来,它基本上被忽视。如果在其他例程中允许多个返回语句,那么应该在最有意义的地方允许零返回语句
# 4 楼答案
我看不出有任何理由,即使是从风格的角度来看,最终会有悬而未决的回报。毕竟,你知道它会回来,因为那里有一个末端支架
# 5 楼答案
也许你是按代码付款的
除此之外,真的没有理由在最后放一个空的回报
# 6 楼答案
我自己也避开他们。这只是一行无用的代码。事实上,PMD有一个规则可以检查这些无用的
return
语句