Java Void

void字面意思是空

作为关键字的void可以表示函数没有返回值

还有一个名为Void的类,不可实例化,作为关键字void的包装,内部只有一个类型

Void.java
1
2
3
4
5
6
7
public final class Void {

@SuppressWarnings("unchecked")
public static final Class<Void> TYPE = (Class<Void>) Class.getPrimitiveClass("void");

private Void() {}
}

类型和关键字类型是一致的

1
System.out.println(void.class == Void.TYPE); //true

在泛型里,如果泛型作为返回值,可以用Void表示没有返回值
因为不能实例化,唯一能接受的值就是null

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
interface Sample<T> {
T getValue();
}

class SampleInteger implements Sample<Integer> {
@Override
public Integer getValue() {
return Integer.MAX_VALUE;
}
}

class SampleVoid implements Sample<Void> {
@Override
public Void getValue() {
return null;
}
}