当它不是原始类型时,返回 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 许可协议
4 回答1.2k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答715 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
因此,以下任何一项都足够了:
Object
并返回new Object()
或null
Void
并返回null
NullObject
参数化您无法使用此方法
void
,其他任何东西都会返回 _一些东西_。由于忽略了某些内容,因此您可以返回任何内容。