Java中Void类的需求是什么

时间:2010-02-28 20:02:44

标签: java void

我不清楚Java中的类java.lang.Void。任何人都可以通过一个例子来详细说明。

4 个答案:

答案 0 :(得分:52)

它还包含Void.TYPE,对于使用反射测试返回类型非常有用:

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

答案 1 :(得分:42)

假设你想要一个为某些东西返回void的泛型:

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

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

答案 2 :(得分: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;

我用它来创建一个专有格式的类的自定义序列化器。

答案 3 :(得分:-2)

来自Java docs

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