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