@Nullable annotation usage

后端 未结 4 1802
太阳男子
太阳男子 2020-11-27 09:17

I saw some method in java declared as:

void foo(@Nullable Object obj)
{ ... }

What\'s the meaning of @Nullable here? Does it m

4条回答
  •  孤独总比滥情好
    2020-11-27 09:53

    Granted, there are definitely different thinking, in my world, I cannot enforce "Never pass a null" because I am dealing with uncontrollable third parties like API callers, database records, former programmers etc... so I am paranoid and defensive in approaches. Since you are on Java8 or later there is a bit cleaner approach than an if block.

    public String foo(@Nullable String mayBeNothing) {
       return Optional.ofNullable(mayBeNothing).orElse("Really Nothing");
    }
    

    You can also throw some exception in there by swapping .orElse to orElseThrow(() -> new Exception("Dont' send a null")).

    If you don't want to use @Nullable, which adds nothing functionally, why not just name the parameter with mayBe... so your intention is clear.

提交回复
热议问题