62

java.lang.VoidJavaのクラスがよくわかりません。誰でも例を挙げてこれを詳しく説明できますか。

4

4 に答える 4

62

Void.TYPEまた、リフレクションを使用して戻り値の型をテストするのに役立つも含まれています。

public void foo() {}
...
if (getClass().getMethod("foo").getReturnType() == Void.TYPE) ...
于 2010-02-28T20:07:48.657 に答える
51

何かに対して void を返すジェネリックが必要だとします。

abstract class Foo<T>
{
    abstract T bar();
}

class Bar
    extends Foo<Void>
{
    Void bar()
    {
        return (null);
    }
}
于 2010-02-28T20:04:56.687 に答える
1

実際には、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;

これを使用して、クラスのカスタムシリアライザーを独自の形式に作成しました。

于 2014-07-31T18:44:30.803 に答える
-2

Java ドキュメントから:

public final class Void
extends Object

Void クラスは、Java キーワード void を表す Class オブジェクトへの参照を保持する、インスタンス化できないプレースホルダー クラスです。

static Class<Void> TYPE 

Java のプリミティブ型 void を表す Class オブジェクト。

TYPE
public static final Class<Void> TYPE

Java のプリミティブ型 void を表す Class オブジェクト。

于 2010-08-14T20:44:13.710 に答える