在Wicket中形成<void>(或一般使用Void类型)</void>

时间:2011-07-03 15:15:48

标签: java generics wicket

最近在Wicket遇到了代码:

Form<?> form = new Form<Void>("form")

有人可以在这里解释Void类型的用法吗?我第一次看到实际使用的那种类型。它是否在Wicket之外使用?

2 个答案:

答案 0 :(得分:6)

是的,它在Wicket之外使用。例如,当一个方法以Callable<V>作为参数,而我的Callable不返回任何内容时,我使用Callable<Void>。因此Void用于表示某些参数化方法不返回任何内容。

在这种特殊情况下,根据文档,它用于表示Form没有任何模型对象。 Void类型的唯一有效值是null

答案 1 :(得分:2)

Void有时用作类型参数,如果您想要表示您“不想返回任何内容”或“不想在该类型中传递任何内容”。即没有信息的unit type。因为类型参数必须是引用类型,并且null是所有引用类型的值,所以期望的类型将不具有任何其他值,即,是没有实例的类型。 “null类型”本身可以工作,但它没有名称。因此,我们选择一个没有任何实例的任意类,Void是一个方便的选择。从技术上讲,任何其他不可实例化的类,如实用程序类MathCollections,也可以正常工作;但Void似乎更合适,因为它与void的关系,{{1}}是用于在基本类型中表达单位类型的类型。