【问题标题】:Can someone explain a void return type in Java?有人可以解释 Java 中的 void 返回类型吗?
【发布时间】:2013-09-12 10:46:51
【问题描述】:

我见过的唯一 void 返回类型在方法中有 System.out.println 语句。 因此,一旦调用该方法,这些字符串就会被打印出来。
难道你不能将返回类型设为字符串并返回字符串而不是 void 返回类型吗?

如果 void 返回类型方法中包含其他方法,您能否将返回类型设为该方法给出的值,该值将返回该方法的结果?

什么时候只能使用 void 返回类型?

【问题讨论】:

  • println(..) 的目的是写一些东西到标准输出。它不需要返回任何东西。
  • 我见过的唯一 void 返回类型在方法中有 System.out.println 语句 看起来你正在学习 Java,否则你会看到其他返回 @987654323 的方法@(或返回 nothing)如 Arrays#sortRunnable#run
  • 不是反对者,但您可以轻松地在网上快速搜索,即在谷歌(或您最喜欢的 SEO)上查看此内容并获得大量答案。
  • 什么时候只能使用 void 返回类型?设置器、执行内部业务逻辑的方法等
  • 我检查过了。一切都是模棱两可的,说没有我知道的返回类型。没有什么太详细了。如果我知道 Arrays#sort 或 Runnable#run 是什么,那可能会更有意义。

标签: java return void


【解决方案1】:

有人可以解释 Java 中的 void 返回类型吗?

void 类型用于声明方法不返回值。

难道不能直接将返回类型设为String,并将字符串设置为与参数相等,以便在调用方法时显示出来吗?

假设“你”(或者在这种情况下,PrintStream API 的设计者)可以做到这一点,但这样做没有意义。我正在努力想一个合理的用例,在该用例中使用 println 参数字符串...如果它作为结果返回。

请记住,良好 API 设计的主要目标包括1

  • 很好地支持常见用例,并且
  • 便于程序员理解。

返回没有意义或很少(如果有)使用的值的方法(IMO)设计不佳。

如果 void 返回类型方法中有其他方法,您是否可以创建返回该方法结果的返回类型方法?

嗯,我想是的。但是您遇到了与上述相同的问题。如果结果要么很少使用或难以理解(因此难以正确使用),那么返回它可能是糟糕的设计

什么时候只能使用 void 返回类型?

一种情况是您正在实现或覆盖interface 或超类中的方法,并且该方法使用void 返回类型声明。

但在孤立的情况下,没有任何情况可以只使用void。 (但是有很多情况好的设计说最好使用void!)


1 - 还有其他目标。请不要断章取义...

【讨论】:

  • 为了更好地理解 Java,我不断提出糟糕的设计假设。感谢您向我解释。
【解决方案2】:

一个 void 返回类型仅仅意味着什么都不返回。 System.out.println 不返回任何内容,因为它只是打印出作为参数传递给它的字符串。

还有..

难道不能直接将返回类型设为String,并将字符串设置为与参数相等,以便在调用方法时显示出来吗?

我不知道你想说什么。

【讨论】:

  • 字符串方法(string s) this.s=s;返回 s;
  • 不确定是否正确,但将您放入 println 方法的内容作为字符串返回类型返回
【解决方案3】:

简单地说,void 什么也不返回,也不期望返回。

您可以在此处阅读有关退货的更多信息:

http://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html

【讨论】:

  • 这是 void 返回类型的最佳示例:任何声明为 void 的方法都不会返回值。它不需要包含 return 语句,但它可以这样做。在这种情况下,可以使用 return 语句从控制流块中分支出来并退出方法,并且可以像这样简单地使用:return;如果你试图从一个声明为 void 的方法返回一个值,你会得到一个编译器错误。
【解决方案4】:

void 返回类型用于表示该方法不返回任何内容。

方法是否应该返回 void、参数之一(如果只有一个,我们可能会这样做)或 this(如果我们想要支持链接方法调用)。

所以这个决定是类设计的一部分。

【讨论】:

    【解决方案5】:

    当您的方法没有return 任何内容时,将使用Void。

    打印语句用于打印而不是返回。 如果你想从你的方法中返回一个字符串。删除 void 并将 String 关键字放在那里。并在方法的最后一行键入 return 语句。 return s; s 是你的字符串变量。

    如果你写了一个没有返回语句的方法。您必须将该方法编写为 void 。 void 表示您没有返回任何东西。返回任何东西都是关闭的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多