2011-07-03 13 views
2

はそうのようなWicketでは、最近のコードに出くわした:Wicketではフォーム<Void>(または一般にvoid型の使用)

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

は、誰もがここにvoid型の使用方法を説明できますか?初めて私はそのタイプが実際に使われているのを見ました。それはWicket外のすべてで使用されていますか?

答えて

6

はい、これはWicketの外で使用されています。たとえば、メソッドが引数としてCallable<V>をとり、Callableが何も返さない場合は、Callable<Void>を使用します。したがって、一部のパラメータ化されたメソッドが何も返さないことを示すためにVoidが使用されます。

この特定のケースでは、ドキュメントに従って、フォームにモデルオブジェクトがないことを示すために使用されます。 Void型の唯一の有効な値はnullです。

2

Void「返品したくない」または「何も渡したくない」という表現をタイプパラメータとして使用することがあります。情報を保持していないunit typeです。型パラメータは参照型でなければならず、nullはすべての参照型の値であるため、目的の型は他の値を持たない、つまりインスタンスを持たない型です。 「null型」自体は機能しますが、名前はありません。したがって、インスタンスを持たない任意のクラスを選択し、Voidは便利な選択です。技術的には、ユーティリティクラスMathCollectionsのような他のインスタンス化不可能なクラスも同様に動作します。 Voidは、voidとの関係のために、より適切と思われます。これは、プリミティブ型内でユニットタイプを表現するために使用される型です。

関連する問題