最近在Wicket遇到了代码:
Form<?> form = new Form<Void>("form")
有人可以在这里解释Void类型的用法吗?我第一次看到实际使用的那种类型。它是否在Wicket之外使用?
答案 0 :(得分:6)
是的,它在Wicket之外使用。例如,当一个方法以Callable<V>
作为参数,而我的Callable不返回任何内容时,我使用Callable<Void>
。因此Void
用于表示某些参数化方法不返回任何内容。
在这种特殊情况下,根据文档,它用于表示Form没有任何模型对象。 Void类型的唯一有效值是null
。
答案 1 :(得分:2)
Void
有时用作类型参数,如果您想要表示您“不想返回任何内容”或“不想在该类型中传递任何内容”。即没有信息的unit type。因为类型参数必须是引用类型,并且null
是所有引用类型的值,所以期望的类型将不具有任何其他值,即,是没有实例的类型。 “null类型”本身可以工作,但它没有名称。因此,我们选择一个没有任何实例的任意类,Void
是一个方便的选择。从技术上讲,任何其他不可实例化的类,如实用程序类Math
或Collections
,也可以正常工作;但Void
似乎更合适,因为它与void
的关系,{{1}}是用于在基本类型中表达单位类型的类型。