私はクラスJava.lang.Void
Javaで。例を挙げて、これについて詳しく説明してください。
また、Void.TYPE
、リフレクションで戻り値の型をテストするのに便利:
public void foo() {}
...
if (getClass().getMethod("foo").getReturnType() == Void.TYPE) ...
何かに対してvoidを返すジェネリックが必要だとします。
abstract class Foo<T>
{
abstract T bar();
}
class Bar
extends Foo<Void>
{
Void bar()
{
return (null);
}
}
実際、void.classが実際に役立つ実用的なケースがあります。クラスフィールドの注釈を作成する必要があり、フィールドのクラスを定義して、それに関する情報を取得する必要があるとします(たとえば、フィールドが列挙型の場合、潜在的な値のリストを取得します)。その場合、次のようなものが必要になります。
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PropertyResourceMapper
{
public Class acceptedValues() default void.class;
}
このように使用するには:
@PropertyResourceMapper(acceptedValues = ImageFormat.class, description = "The format of the image (en example, jpg).")
private ImageFormat format;
これを使用して、クラスのカスタムシリアライザーを独自の形式に作成しました。