当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如果方法的返回类型为Void,我会返回什么?(不是无效!)》经验,为你挑选了4个好方法。

由于在Java中使用泛型,我最终必须实现具有Void返回类型的函数:

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

并且编译器要求我返回一些东西.现在我回来了null,但我想知道这是不是很好的编码实践......

我也试过Void,void,Void.class,void,没有回报可言,但都不会在所有的工作.(出于或多或少的明显原因)(详情请参阅此答案)

那么如果函数的返回类型是什么,我应该返回Void.TYPE什么?

new Void()堂课的一般用途是什么?

编辑:只是为了免除你的支持:我问的是V oid,而不是v oid.类Void,而不是保留关键字Void.



1> John Feminel..:

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

使用return null.Void无法实例化,仅仅是Class类型的占位符void.

有什么意义Void

如上所述,它是一个占位符.Void如果您使用反射来查看返回类型为的方法,那么您将获得回报void.(从技术上讲,你会回来的Class.)它有这些方面的其他各种用法,比如你想参数化a Callable.

由于在Java中使用泛型,我最终必须实现此功能

如果您需要使用此签名实现一个方法,我会说您的API可能会有些问题.仔细考虑是否有更好的方法来做你想做的事情(也许你可以在另一个后续问题中提供更多细节?).我有点怀疑,因为这只是"由于使用仿制药"而出现的.


毕竟,不得不返回Void并不那么时髦.它可以简单地由例如Callable 强制执行.有时你只是不需要返回一些但不能使用例如Runnable.

2> Jon Bright..:

没有办法实例化Void,所以你唯一可以返回的是null.


更准确地说,没有做坏事就无法实例化虚空.

3> Bombe..:

return null 是要走的路.



4> Martijn..:

要弄清楚为什么你给出的其他建议不起作用:

Void.classVoid.TYPE指向同一个对象,属于类型Class,而不是Void.

这就是为什么你不能返回这些值.new Void()将是类型,Void但该构造函数不存在.事实上,Void没有公共构造函数,所以无法实例化:Void除了多态之外,你永远不会有任何类型的对象null.

希望这可以帮助!:-)

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有