【问题标题】:On Void return type无效返回类型
【发布时间】:2012-02-07 01:41:29
【问题描述】:

如果需要返回 Void 类型,Javadoc 将其描述为

一个类是一个不可实例化的占位符类来保存一个 对表示 Java 关键字 void 的 Class 对象的引用。

为什么下面还需要返回null?

public Void blah() {
    return null; // It seems to always want null
}

【问题讨论】:

标签: java void


【解决方案1】:

Void 和其他类一样,因此返回Void 的函数必须返回一个引用(例如null)。事实上,Void 是 final 并且不可实例化,这意味着 null 是返回 Void 的函数唯一可以返回的东西。

当然public void blah() {...}(带有小写v)不必返回任何内容。

如果您想知道Void 的可能用途,请参阅Uses for the Java Void Reference Type?

【讨论】:

  • “当然public void blah() {...}(带有小写的v)不必返回任何东西。”确实,必须不需要。跨度>
【解决方案2】:

Java 中正确的关键字是void,而不是Void(注意开头使用小写字母)。 Void(大写)是,根据documentation:

Void 类是一个不可实例化的占位符类,用于保存对表示 Java 关键字 void 的 Class 对象的引用。

【讨论】:

    【解决方案3】:

    正如文档所说,它是一个不可实例化的占位符类,因此您无法获得实例,但您必须返回自Void != void 以来的某些内容。 Void 实际上是一个 class,因此被视为需要返回实例或 null 的任何其他类/类型。

    【讨论】:

      【解决方案4】:

      Void 是 void 类型的对象“包装器”。 void 的返回类型不会返回返回值,但 Void 会。您不能在泛型中使用void 或任何原始类型。

      【讨论】:

        猜你喜欢
        • 2019-05-07
        • 1970-01-01
        • 2022-12-06
        • 1970-01-01
        • 2014-08-08
        • 2016-08-09
        • 1970-01-01
        • 2021-06-29
        • 2018-05-31
        相关资源
        最近更新 更多