Java 中,void 和 Void 常作为方法的返回值,它们有什么区别,各自使用场景是什么?
定义区别
两者从 java 的语法定义就完全不一样。
void
它是 java 的关键字,用于表示方法没有返回结果。
java.lang.Void
它是 void 的封装类型,但和其它基础类的封装类型不同的是 Void 不能被实例化,它只是一个占位类(placeholder class),可以成为泛型返回方法返回 NULL 时的占位类。
使用场景
如上定义的不同,封装类 Void 常用在泛型方法里,如对应的泛型业务方法使用时,如果没有返回值的业务迭代时,用 Void 作为占位类,此时,方法实际返回值必须为 NULL
。
最典型的案例就是使用 Future<T>
用来保存结果时,如果操作没有返回值,这泛型类中用 Void 迭代,实际返回值为 NULL 即可。