Size: a a a

StartAndroid Ru Chat

2020 August 04

S

Sergey in StartAndroid Ru Chat
Alexandr Lyubimov
Немного не понятно, что хотите в итоге получить
Мне просто надо правильно расставить аннотации( Если в этом примере не менять код
источник

T

The The in StartAndroid Ru Chat
Sergey
А какую тогда в данном случае могу поставить поставить аннотацию над самим методом?
аннотация это просто сообщить студии что у тебя тут может быть null и она тебе напомнит что нужна проверка
источник

S

Sergey in StartAndroid Ru Chat
The The
аннотация это просто сообщить студии что у тебя тут может быть null и она тебе напомнит что нужна проверка
Вот не очень пойму, что если всё-таки кинут в параметр null, то проверки нет же на нее и тогда функции вернёт null
источник

S

Sergey in StartAndroid Ru Chat
Тогда получается надо ставить @nullable??
источник

AL

Alexandr Lyubimov in StartAndroid Ru Chat
если кинут нулл - будет нпе
источник

AL

Alexandr Lyubimov in StartAndroid Ru Chat
судя по коду выше
источник

T

The The in StartAndroid Ru Chat
Sergey
Тогда получается надо ставить @nullable??
та можешь вообще ничего не ставить
источник

S

Sergey in StartAndroid Ru Chat
The The
та можешь вообще ничего не ставить
Сказали, что аннотации нужно расставить((
источник

S

Sergey in StartAndroid Ru Chat
Alexandr Lyubimov
если кинут нулл - будет нпе
Ну если тогда вернуть просто здесь тот же самый параметр без преобразования к верх регистру, как тогда?
источник

T

The The in StartAndroid Ru Chat
Sergey
Сказали, что аннотации нужно расставить((
если у тебя @nonnull параметр проверку можешь внутри функции не делать, ее нужно делать ДО ВЫЗОВА функции, если у тебя параметр @Nullable, значит, ты сообщаешь компилятору что тут у тебя может быть null и нужна проверка на null
источник

AL

Alexandr Lyubimov in StartAndroid Ru Chat
но если туда будут пихать потенциальный нулл - будет предупреждение в ide. Так что сами себе грозные буратины ))
источник

T

The The in StartAndroid Ru Chat
Sergey
Привет! Вот так можно сделать с аннотацией функции без внутренней проверки in на null?

@NonNull
String capitalize(@NonNull String in) {
       return in.toUpperCase();
   }
не знаю чего тебе сказали, что так делать нельзя. тут как раз внутри делать проверку на null не нужно, ты уже сообщаешь тому, кто будет вызывать эту функцию, что только NonNull значение можно передать
источник

AL

Alexandr Lyubimov in StartAndroid Ru Chat
Как раз аннотация говорит о том, что в этот метод пихать нуллы дурная затея
источник

V

Vladushka in StartAndroid Ru Chat
Sergey
Тогда получается надо ставить @nullable??
Смотря какие цели вы преследуете
Эти аннотации просто указания для вас самих и других, кто увидит код
Если вы знаете, что в ваш метод может быть передано значение null , то ставите nullable, если нет, то nonnull

По опыту от nonnull толку никакого, разве что если с котлином работа параллельно
А nullable лучше ставить везде , где null может быть
источник

T

The The in StartAndroid Ru Chat
Vladushka
Смотря какие цели вы преследуете
Эти аннотации просто указания для вас самих и других, кто увидит код
Если вы знаете, что в ваш метод может быть передано значение null , то ставите nullable, если нет, то nonnull

По опыту от nonnull толку никакого, разве что если с котлином работа параллельно
А nullable лучше ставить везде , где null может быть
зачем ставить везде? null то может быть в любом параметре, хоть ты там усрись этими аннотациями, лол. чисто просто по красоте оформить код, разве что
источник

S

Sergey in StartAndroid Ru Chat
Немного в растерянности. Вот если так к вопросу подойти. В параметре стоит @nonull, функция возвращает параметр этот же самый. Аннотация @nonull для самой функции подходящая??? Ведь могут по идее кинуть в параметр null и ничего не будет. Но так как нет никакой проверки внутри функции то и нет гарантии, что null не вернется
источник

T

The The in StartAndroid Ru Chat
Sergey
Немного в растерянности. Вот если так к вопросу подойти. В параметре стоит @nonull, функция возвращает параметр этот же самый. Аннотация @nonull для самой функции подходящая??? Ведь могут по идее кинуть в параметр null и ничего не будет. Но так как нет никакой проверки внутри функции то и нет гарантии, что null не вернется
все правильно, гарантии нет. ты просто сообщаешь что функция ожидает NonNull значение. если таки передать в нее null, то словите NullPointerException
источник

AL

Alexandr Lyubimov in StartAndroid Ru Chat
Немного не так. В эту функцию все равно можно передать нулл
источник

AL

Alexandr Lyubimov in StartAndroid Ru Chat
Но эта анноация говорит, что не надо так делать
источник

S

Sergey in StartAndroid Ru Chat
Значит самой функции выставить @nullable будет правильнее?
источник