由于在Java中使用泛型,我最终必须实现具有Void
返回类型的函数:
public Void doSomething() { //... }
并且编译器要求我返回一些东西.现在我回来了null
,但我想知道这是不是很好的编码实践......
我也试过Void
,void
,Void.class
,void
,没有回报可言,但都不会在所有的工作.(出于或多或少的明显原因)(详情请参阅此答案)
那么如果函数的返回类型是什么,我应该返回Void.TYPE
什么?
这new Void()
堂课的一般用途是什么?
编辑:只是为了免除你的支持:我问的是V oid,而不是v oid.类Void
,而不是保留关键字Void
.
那么如果函数的返回类型必须返回,我应该返回
Void
什么?
使用return null
.Void
无法实例化,仅仅是Class
类型的占位符void
.
有什么意义
Void
?
如上所述,它是一个占位符.Void
如果您使用反射来查看返回类型为的方法,那么您将获得回报void
.(从技术上讲,你会回来的Class
.)它有这些方面的其他各种用法,比如你想参数化a Callable
.
由于在Java中使用泛型,我最终必须实现此功能
如果您需要使用此签名实现一个方法,我会说您的API可能会有些问题.仔细考虑是否有更好的方法来做你想做的事情(也许你可以在另一个后续问题中提供更多细节?).我有点怀疑,因为这只是"由于使用仿制药"而出现的.
没有办法实例化Void,所以你唯一可以返回的是null.
return null
是要走的路.
要弄清楚为什么你给出的其他建议不起作用:
Void.class
并Void.TYPE
指向同一个对象,属于类型Class
,而不是Void
.
这就是为什么你不能返回这些值.new Void()
将是类型,Void
但该构造函数不存在.事实上,Void
没有公共构造函数,所以无法实例化:Void
除了多态之外,你永远不会有任何类型的对象null
.
希望这可以帮助!:-)