有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

返回类型为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个答案:“否。”


共 (6) 个答案

  1. # 1 楼答案

    纯粹基于风格的问题,完全没有区别(可能是额外的asm指导,但谁在乎呢?)。做任何你觉得更舒服的事情,或者遵循之前在准则中建立的惯例

  2. # 2 楼答案

    我说永远不要这样做。void函数中的返回语句仅用于中断语句的逻辑。如果你开始这样做,那么你会向代码的读者发送一条令人困惑的语句,人们会很容易认为,也许你计划使用一些你忘记的If语句。总是追求可读性

  3. # 3 楼答案

    关于structured programming的一个想法是:

    每个例行程序都应该有一个入口点和一个出口点

    如果您订阅了该策略,那么return语句指示退出例程的唯一方法

    在实践中,这一政策并没有让代码更清晰,而且自20世纪70年代以来,它基本上被忽视。如果在其他例程中允许多个返回语句,那么应该在最有意义的地方允许零返回语句

  4. # 4 楼答案

    我看不出有任何理由,即使是从风格的角度来看,最终会有悬而未决的回报。毕竟,你知道它会回来,因为那里有一个末端支架

  5. # 5 楼答案

    也许你是按代码付款的

    除此之外,真的没有理由在最后放一个空的回报

  6. # 6 楼答案

    我自己也避开他们。这只是一行无用的代码。事实上,PMD有一个规则可以检查这些无用的return语句