gpt4 book ai didi

java - 为什么存在 Void 类?

转载 作者:行者123 更新时间:2023-11-30 04:10:02 24 4
gpt4 key购买 nike

编辑

这主要是一个类为什么存在的问题,而不是类的用法的问题。问题Uses for the Java Void Reference Type?重点关注实际用法,该问题询问其实现背后的推理。

<小时/>

Java 有一个盒装类 Void 对于关键字返回类型 void .

来自文档:

The Void class is an uninstantiable placeholder class to hold a reference to the Class object representing the Java keyword void.

我见过此类使用的唯一情况是泛型,如下所示:

interface Foo<R> {
R foo();
}

Foo<Void> foo = new Foo<Void>(){
@Override
public Void foo() {
return null; // `return;` and `return void;` are syntax errors
}
}

Android 的 AsyncTask 就是一个例子。 .

上面的示例似乎完全没有意义,因为该方法返回 void ,它总是返回 null

所以告诉我,为什么 Void存在吗?

最佳答案

Reflection API 要求它表示 void 方法的返回类型,作为 java.lang.reflect.Method.getReturnType() 的结果。(严格来说,这是void.class, 不是 Void.class,,而是编译器将 void.class 强制转换为 Void.TYPE。)还用于其他几个地方,如 Use page in its Javadoc 所示。 .

关于java - 为什么存在 Void 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com