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对象。