Java的java.lang.Void和void的区别

2020-12-30 17:46:34 浏览数 (1)

  1. void是关键字,表示函数返回没有结果。
  2. java.lang.Void是一种类型,可以引用赋值
代码语言:javascript复制
Void a = null;

Void源码:

代码语言:javascript复制
public final
class Void {

    /**
     * The {@code Class} object representing the pseudo-type corresponding to
     * the keyword {@code void}.
     */
    @SuppressWarnings("unchecked")
    public static final Class<Void> TYPE = (Class<Void>) Class.getPrimitiveClass("void");

    /*
     * The Void class cannot be instantiated.
     */
    private Void() {}
}

Void作为函数的返回结果表示函数返回null(除了null不能返回其它类型)。

代码语言:javascript复制
 Void function(int a, int b) {
    //do something
    return null;
 }

在泛型出现之前,Void一般用于反射之中。例如,下面的代码打印返回类型为void的方法名。

代码语言:javascript复制
public class Test {
    public void print(String v) {}

    public static void main(String args[]){
        for(Method method : Test.class.getMethods()) {
            if(method.getReturnType().equals(Void.TYPE)) {
                System.out.println(method.getName());
            }
        }
    }
}

0 人点赞