当前位置: 首页 > 面试题库 >

如果方法的返回类型为Void,我该返回什么?(不无效!)

刘弘济
2023-03-14
问题内容

由于在Java中使用了泛型,我最终不得不实现一个具有Voidas返回类型的函数:

public Void doSomething() {
    //...
}

并且编译器要求我返回 一些东西 。现在我只是返回null,但是我想知道这是否是好的编码实践…

我问的是 V oid,而不是 V oid。类Void而不是 保留关键字void

我也试过Void.classvoidVoid.TYPEnew Void(),没有回报可言,但都不会在所有的工作。(出于或多或少明显的原因)

  • 那么,如果函数的返回类型为,我应该返回Void什么呢?
  • Void课程的一般用途是什么?

问题答案:

那如果函数的返回类型必须是我应该返回Void什么呢?

使用return nullVoid无法实例化,仅是的Class<T>类型的占位符void

有什么意义Void

如上所述,它是一个占位符。Void例如,如果您使用反射来查看返回类型为的方法,则会得到的回报void。(从技术上讲,您会回来的Class<Void>。)沿着这些思路,它还有其他多种用途,例如您想参数化一个Callable<T>

由于在Java中使用了泛型,我最终不得不实现此功能

我想说的是,如果您需要使用此签名来实现方法,则API可能有些奇怪。请仔细考虑是否有更好的方法来做您想要的事情(也许您可以在其他后续问题中提供更多详细信息?)。我有点怀疑,因为这只是“由于使用泛型”而引起的。



 类似资料:
  • 我看过返回IList vs ICollection vs Collection以及它链接的其他问题,但我仍然对这个问题感到困惑。 出于演示目的,我们假设我有一个类,在其中公开了一个公共方法,如下所示: 要遵循CA1002,我的方法应该返回实际的集合类(、等)或它们的接口(、等),如果我希望返回具体?

  • 问题内容: 在哪里返回。这不会编译…我 几乎 可以理解为什么。但是,如果我想从一个空白中返回一个空白,为什么不呢?相反,我最终写了这样的东西: 我不是在寻找代码样式建议,我想知道为什么Java明确禁止这种类型的void返回。任何信息表示赞赏,谢谢。 问题答案: 带有表达式的return语句返回该表达式的值。的类型的是空隙表达-它不 具有 一个值。 从逻辑上讲,您想执行,然后返回-所以您必须说。这两

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

  • 我注意到,在使用扫描仪时,如果我想设置定界符或区域设置等属性,那么这样做的方法会返回扫描仪对象本身: 我不明白的是,如果属性被更改(而不是创建新对象),为什么它返回一个扫描器对象而不是void?这并不是说我必须将返回值存储在一个变量中——事实上,如果我尝试这样做,就像下面的代码中那样,Eclipse将发出消息:“lineScanner”在此位置未关闭:

  • 为了方便起见,我将setter方法返回类型更改为对象,例如: 但在tomcat做出这一改变之后 PropertyNotFoundException: 为了消除这个异常,我将修饰符从private更改为public,但仍然得到相同的错误。所以我有两个问题; null

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