169 похожих чатов

Ну смотри. в джаве. если тебе нужен геттер ты его

делаешь, не нужен - не делаешь. Если поле может быть налл, ставишь аннотацию, если не должно или при налл должно упасть - не ставишь.

В котлине все наоборот. Не нужен геттер? А мы его уже сделали. Поле не может быть налл? А мы его уже сделали таким и костыляй лейзями или лейтинитами.

3 ответов

15 просмотров

Если тебе не нужен геттер, просто делаешь приватное свойство. Вместо аннотаций есть ?. lazy — вообще о другом. lateinit — костыль, который в нормально спроектированной системе не возникает.

И в джаве неправильно, а в котлине правильно. Это поведение по умолчанию которое подходит большинству и не дает выстрелить себе в ногу

вот интересно, если котлин такой неудобный и спроектирован так неудачно, зачем сидеть в чятике про него? я гналась за вами три дня сказать насколько вы мне безразличны? в джаве ты всё делаешь руками, в котлине все базовые кейзы автомитизированы. Когда надо есть гетеры, когда не надо -- нет. Если тебе очень надо убрать геттер и сделать публичное поле это можно сделать аннотациями, только не надо оправдывать говнодизайн тем, что без геттеров быстрее, джавамашина заинлайнит геттер без всяких проблем, если он будет часто дергаться по поводу может/не может быть нал вообще ерунда, потому что это почти теже аннтотации, только из коробки работают

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта