如果参数为null,则返回null的注释

时间:2020-01-10 17:34:44

标签: java spring

我有类似

的方法
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) {
    ...
}

2 个答案:

答案 0 :(得分:0)

首先,在Java中使用注释纯粹是出于句法元数据的原因,因此,指定方法是否返回null不会以这种方式起作用。

另一种用法是在使用注释时为编译器指定其他操作。

答案 1 :(得分:0)

您在这里不需要任何注释,我会说如果参数foo为null,则无需使用调用yieldBar方法,可以避免使用三元运算符

Bar bar = Objects.nonNull(foo) ? yieldBar(foo) : null;