由于在Java中使用了泛型,我最终不得不实现一个具有Voidas返回类型的函数:
Void
public Void doSomething() { //... }
并且编译器要求我返回 一些东西 。现在我只是返回null,但是我想知道这是否是好的编码实践…
null
我问的是 V oid,而不是 V oid。类Void, 而不是 保留关键字void。
void
我也试过Void.class,void,Void.TYPE,new Void(),没有回报可言,但都不会在所有的工作。(出于或多或少明显的原因)
Void.class
Void.TYPE
new Void()
那如果函数的返回类型必须是我应该返回Void什么呢?
使用return null。Void无法实例化,仅是的Class<T>类型的占位符void。
return null
Class<T>
有什么意义Void?
如上所述,它是一个占位符。Void例如,如果您使用反射来查看返回类型为的方法,则会得到的回报void。(从技术上讲,您会回来的Class<Void>。)沿着这些思路,它还有其他多种用途,例如您想参数化一个Callable<T>。
Class<Void>
Callable<T>
由于在Java中使用了泛型,我最终不得不实现此功能
我想说的是,如果您需要使用此签名来实现方法,则API可能有些奇怪。请仔细考虑是否有更好的方法来做您想要的事情(也许您可以在其他后续问题中提供更多详细信息?)。我有点怀疑,因为这只是“由于使用泛型”而引起的。