当它不是原始类型时,返回 Void
类型的正确方法是什么?例如。我目前使用 null 如下。
interface B<E>{ E method(); }
class A implements B<Void>{
public Void method(){
// do something
return null;
}
}
原文由 Robert 发布,翻译遵循 CC BY-SA 4.0 许可协议
当它不是原始类型时,返回 Void
类型的正确方法是什么?例如。我目前使用 null 如下。
interface B<E>{ E method(); }
class A implements B<Void>{
public Void method(){
// do something
return null;
}
}
原文由 Robert 发布,翻译遵循 CC BY-SA 4.0 许可协议
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 @NonNull
和 @Nullable
。
原文由 Erick G. Hagstrom 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
因此,以下任何一项都足够了:
Object
并返回new Object()
或null
Void
并返回null
NullObject
参数化您无法使用此方法
void
,其他任何东西都会返回 _一些东西_。由于忽略了某些内容,因此您可以返回任何内容。