当前位置: 首页 > 知识库问答 >
问题:

返回类型为void的函数的方法调用表达式的计算值是什么?

司知
2023-03-14

oracle java教程指出:(我强调)

表达式是由变量、运算符和方法调用组成的构造,它们根据语言的语法构造,并计算为单个值。

给定一个函数

public void doNothing() { }

方法调用表达式< code>doNothing()的值是什么?

我想知道这一点,因为在我的理解val表明这个函数不返回任何东西。

共有1个答案

袁骏祥
2023-03-14

< code>doNothing()是方法调用,而不是表达式。正如您所提到的,表达式是由变量、操作符和方法调用组成的结构...计算结果为单个值的。这就像问一个单词或短语是不是一个句子一样。

考虑Map#put(K, V)方法。该方法本身的调用,即使它返回一个值,本身也不代表表达式。

1  Map<String, Integer> numbers = new HashMap<>();
2  Integer oldVal = numbers.put("one", 1); // not an expression
3  boolean notNull = oldVal != null); // an expression

第2行的代码不是表达式的主要原因是没有进行任何评估。第2行是一个简单的方法调用,即使它返回一个值。相比之下,第3行是一个表达式,因为正在进行评估(notNull变量与null的比较。

1  int value1 = 1 + 2; // an expression
2  int value2 = 5 * 2; // an expression
3  if (value1 == value2) {...} // an expression

在上面的代码片段中,所有3行都包含一个表达式。最明显的是第3行(< code>value1 == value2)。另外两个是数学表达式。为什么?因为每一个都是有两个操作数和一个运算符的构造。

回到方法<code>doNothing()

我希望这有助于澄清什么是表达式。

 类似资料:
  • 问题内容: 我是一名编程初学者,对函数的返回值有疑问。 我正在学习Java。 我已经附上了我的书中具有经典选择排序功能的代码。 现在显然来自本书的代码可以正常工作。但是,主要功能中的以下三行是我的问题的基础: int [] a = new int [] {1,9,2,8,3,7,4,6​​,5}; 排序(a); if(ascending(a))System.out.println(“ Works”

  • 当交换机分支调用void返回类型的方法时,有没有办法强制对所有枚举值进行彻底检查?仅仅为了诱使编译器要求穷尽性而对产量进行硬编码是非常丑陋的。 这是我当前的模式(handle方法具有void返回类型) 我想使用表达式的原因是在添加新枚举值但未处理时出现编译错误。

  • 本文向大家介绍什么是方法的返回值?返回值在类的方法里的作用是什么?相关面试题,主要包含被问及什么是方法的返回值?返回值在类的方法里的作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。 返回值的作用: 接收出结果,使得它可以用于其他的操作!

  • 我想创建一个任务来运行串行命令。此时,我不需要从正在进行工作的方法返回任何内容。这可能会在以后发生变化,但我现在很好奇这是如何发生的。 这就是我所拥有的。我想为任务使用单独的方法,而不是创建匿名操作。我尝试返回void,结果是“void不能显式转换为任务”。我也试过了<代码>任务 在此过程中,我使用了一个线程来完成这项任务,但这次我想使用任务。 预计到达时间: 最后,这是我的完整解决方案

  • 我得到了这个错误:这个表达式的类型是'void',所以它的值不能被使用。尝试检查是否使用了正确的API;可能会有一个函数或调用返回您意想不到的void。还要检查类型参数和变量,它们也可能是空的。 代码: null null 我不明白这是什么。我是新手。这是我的第一个应用程序。有人能帮我一下吗。

  • 我有一个关于显示void类型的返回值的问题。因此trimLines是一个void类型的方法。我不明白如何显示void类型的方法,因为该方法没有返回任何东西,所以没有任何东西可以显示。由于采用字符串类型,这将导致错误。