返回 Void 对象

2022-08-31 08:20:42

当类型不是基元时,返回类型的正确方法是什么?例如。我目前使用空值,如下所示。Void

interface B<E>{ E method(); }

class A implements B<Void>{

    public Void method(){
        // do something
        return null;
    }
}

答案 1

Void 类是一个无法证实的占位符类,用于保存对表示 Java 关键字 void 的 Class 对象的引用。

因此,以下任何一项就足够了:

  • 参数化和返回或Objectnew Object()null
  • 参数化和返回Voidnull
  • 使用您的参数化NullObject

你不能做这个方法,其他任何东西都会返回一些东西。由于忽略了某些内容,因此您可以返回任何内容。void


答案 2

Java 8 引入了一个新的类 ,可以在这种情况下使用。要使用它,您需要稍微修改代码,如下所示:Optional<T>

interface B<E>{ Optional<E> method(); }

class A implements B<Void>{

    public Optional<Void> method(){
        // do something
        return Optional.empty();
    }
}

这使您可以确保始终从方法中获取非 null 返回值,即使没有任何要返回的内容也是如此。当与检测何时可以返回或何时不能返回的工具(例如Eclipse和注释)结合使用时,这尤其强大。null@NonNull@Nullable


推荐