我不清楚Java中的类java.lang.Void
。任何人都可以通过一个例子来详细说明。
答案 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对象。