专业的JAVA编程教程与资源

网站首页 > java教程 正文

面试官问:Java中java.lang.Void和void有什么区别?

temp10 2024-10-26 15:14:28 java教程 11 ℃ 0 评论

作者:FserSuN

来源:https://url.cn/5h2mOJr

面试官问:Java中java.lang.Void和void有什么区别?

void关键字表示函数没有返回结果,是java中的一个关键字。

java.lang.Void是一种类型。例如给Void引用赋值null。

Bash
Void nil = null;

通过Void类的代码可以看到,Void类型不可以继承与实例化。

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

Bash
 Void function(int a, int b) {
 //do something
 return null;
 }

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

Bash
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());
 }
 }
 }
}

泛型出现后,某些场景下会用到Void类型。例如Future<T>用来保存结果。Future的get方法会返回结果(类型为T)。

但如果操作并没有返回值呢?这种情况下就可以用Future<Void>表示。当调用get后结果计算完毕则返回后将会返回null。

另外Void也用于无值的Map中,例如Map这样map将具Set<T>有一样的功能。

因此当你使用泛型时函数并不需要返回结果或某个对象不需要值时候这是可以使用java.lang.Void类型表示。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表