Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java 中 void 和 java.lang.Void 即大写 void 的区别与各自使用场景

Java 笔记 Java 笔记


Java 中,void 和 Void 常作为方法的返回值,它们有什么区别,各自使用场景是什么?

定义区别

两者从 java 的语法定义就完全不一样。

void

它是 java 的关键字,用于表示方法没有返回结果。

java.lang.Void

它是 void 的封装类型,但和其它基础类的封装类型不同的是 Void 不能被实例化,它只是一个占位类(placeholder class),可以成为泛型返回方法返回 NULL 时的占位类。 

使用场景

如上定义的不同,封装类 Void 常用在泛型方法里,如对应的泛型业务方法使用时,如果没有返回值的业务迭代时,用 Void 作为占位类,此时,方法实际返回值必须为 NULL

最典型的案例就是使用 Future<T> 用来保存结果时,如果操作没有返回值,这泛型类中用 Void 迭代,实际返回值为 NULL 即可。