我有一个像这样的方法
Bar yieldBar(Foo foo) {
Bar bar = new Bar();
bar.setFoo(foo);
return bar;
}如果foo为null,我希望这个调用返回null。有没有办法实现像这样的东西?
@NullPassthrough
Bar yieldBar(Foo foo) {
...
}这相当于通过一些编译时生成的包装器实现以下功能:
Bar yieldBar(Foo foo) {
if (foo == null) return null;
return yieldBar(foo);
}
Bar yieldBarHelper(Foo foo) {
...
}发布于 2020-01-11 01:46:19
首先,在Java中使用注释纯粹是出于语法元数据的原因,因此指定一个方法是否返回null不会以这种方式起作用。
另一种用法是在使用注解时为编译器指定额外的操作。
发布于 2020-01-11 07:39:10
这里你不需要任何注释,我会说如果参数foo为空,那么调用yieldBar方法就没有用了,你可以避免使用三元运算符进行调用
Bar bar = Objects.nonNull(foo) ? yieldBar(foo) : null;https://stackoverflow.com/questions/59686481
复制相似问题