Java中的Void类的需求是什么?

我不清楚Java中的java.lang.Void类。 有没有人可以用一个例子来说明这一点。

它还包含Void.TYPE ,用于testing具有reflection的返回types:

 public void foo() {} ... if (getClass().getMethod("foo").getReturnType() == Void.TYPE) ... 

假设你想拥有一个返回void的generics:

 abstract class Foo<T> { abstract T bar(); } class Bar extends Foo<Void> { Void bar() { return (null); } } 

实际上,void.class真的很有用。 假设您需要为类字段创build注释,并且需要定义字段的类以获取有关该字段的一些信息(例如,如果该字段是枚举,则获取潜在值的列表)。 在这种情况下,你需要这样的东西:

 @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; 

我已经使用这个来创build一个专有格式的类的自定义串行器。

从Java文档 :

 public final class Void extends Object 

Void类是一个不合理的占位符类,用于保存对表示Java关键字void的Class对象的引用。

 static Class<Void> TYPE 

表示原始Javatypesvoid的Class对象。

 TYPE public static final Class<Void> TYPE 

表示原始Javatypesvoid的Class对象。