Работоспособность анотаций

Читая разные колы я увидел то что аннотации могут стоять на разных местах, например:

@Nullable
Strings name;

Или же в средине метода:

void a(@Nullable Object a, Object1, a1){
}

Как работают анотации в разных местах?


Ответы (1 шт):

Автор решения: Зонтик

Аннотация @Nullable означает, что что-то может быть null. Ведь able переводится с английского как "способный".

Как аннотации работают в разных местах?

Я буду говорить конкретно про аннотацию @Nullable(именно она была указанна в вопросе!), так как другие аннотации могут работать по-другому. Вот варианты, где она обычно может стоять.

  1. Аннотация @Nullable к полю класса. У вас в вопросе был такой пример:
@Nullable
Strings name;

Тут всё просто, как никогда: в данном случае аннотация означает, что поле может быть null.

  1. Аннотация @Nullable к методу. Вот пример:

public class Test {

   private String string;
   
   @Nullable
   public String someMethod(){
      return string;
   }
}

В таком случае данная аннотация даёт понять, что метод может вернуть null.

  1. Аннотация @Nullable к параметру метода(а не "в середине метода"). Тоже всё просто, аннотация даёт понять, что может по параметрам может придти null:
public void someMethod(@Nullable Object object){
  //Код метода
}

Вот как работает @Nullable в разных местах. Надеюсь, мой ответ полезен =). В в вопросе была указана аннотация @Nullable, я отвечал про неё, а остальные, как я говорил, могут работать по-другому. Если в ответе что-то не так, пишите в комментариях, я его перепишу или дополню.

→ Ссылка