
Stanislav
27.11.2016
14:10:12
Null -- это фича языка. И работа с ним должна идти на уровне языка. А не костылями.

Берял
27.11.2016
14:10:17
а наллабл тип в языке с наллами это еще больший проеб, как мне кажется

Oleksandr
27.11.2016
14:11:25

Google

Stanislav
27.11.2016
14:11:58
В старых проектах я переодически вижу Public static final User NO_USER = ... -- такой же костыль, как и опшнл. Только домен-специфичный

Oleksandr
27.11.2016
14:12:25
это не костыль, а nullable object pattern
у меня пару раз было, что он выгоднее за опшн

Берял
27.11.2016
14:12:40

Stanislav
27.11.2016
14:13:03
О того, что к него есть свое название в паттернах, он не перестает быть костылем

Oleksandr
27.11.2016
14:14:24
ну такое, не суть
вернусь к предыдущему вопросу — у ? есть совершенно независимый функционал, который почти-все-из-джавы оборачивает в ?
точно такое же реализуемо для опшнов

Stanislav
27.11.2016
14:15:03

Maksim
27.11.2016
14:16:24

Stanislav
27.11.2016
14:17:33
Пусть сделают удобную работу с опшнл на уровне языка, тогда будет норм. Я хочу делать так:
T t = ... ; Optional<T> optT = t;
Или так:
Optional<T> optT = null;
А пока в джаве я должен ебаться с наллами. И можеть быть еще ебаться с опшнлами, если реши их ввести в проект
Зачем мне дважды ебаться?
Сделают поддержку в языке, будет идеоматичнее чем ? . А пока это костыль
Как переходник от макбука в айфону

Google

Oleksandr
27.11.2016
14:25:16
во-первых, я вот не вспомню, когда последний раз получал NPE в джаве — точно ли мне всегда надо захламлять код лишними проверками?
во-вторых, возможность (в идеале, настраиваемая, пункт 1) анализировать джава код и добавлять туда ? — действительно хороший плюс (хотя остаются вопросы с обработкой того же @NonNull — умеет ли котлин это превращать сразу в T, без T? ?)
в-третьих, если отбросить возможность анализ джава кода, то ? однозначно хуже — опшн не выбивается за рамки "обычной коллекции", а ? требует специального подхода
тебе больше нравится фича автоанализа кода, и она действительно полезна (с оговорками выше)
но я веду к тому, что, без её учета, опшн однозначно лучше
а в автоанализе нету ничего, что бы привязывалось только к ?


Stanislav
27.11.2016
14:30:11
да, будь поодержка языка и компиляторов, то Optional<T> лучше ?
но я про реальный мир говорю, в котором есть либо Optional<T> без какой-либо поддержки языка, либо ? с поддержкой языка
и чо-то я не вижу, что Optional в джаве будет развиваться

Oleksandr
27.11.2016
14:32:49
ну, это аргумент
надеюсь, если скала таки прикрутит автоанализ, то сразу для опшнов

Stanislav
27.11.2016
14:36:02
да там все новое в j8 как-то криво сделано, как будто комманды, которые это пилили, никак между собой не общались
тем не менее , жизнь боль , а котлин для меня -- пока единственная надежда хоть как-то зажить по-человечески

Oleksandr
27.11.2016
14:37:13
андроид, небось?

Stanislav
27.11.2016
14:37:32
нет, сервера
геймдев и немного вебчика

Nikita
27.11.2016
14:47:24
мб у кого-нибудь есть spring in action 4 на русском языке? скиньте пжлст)

sss3 ?
27.11.2016
14:49:59

Oleksandr
27.11.2016
14:50:13

sss3 ?
27.11.2016
14:50:22
Коммитил
Но он не разработчик

Oleksandr
27.11.2016
14:50:29
а это "не делал" ? :)
ну, есть дизайн общий, есть "детали реализации"

Google

Митко Соловец?
27.11.2016
14:51:06

Берял
27.11.2016
14:51:06

sss3 ?
27.11.2016
14:51:24
Я сейчас в какую нить опенсорс либу сделаю один коммит с багфиксом - я разработчик?

Берял
27.11.2016
14:51:46
один - врятли, а несколько - возможно

Митко Соловец?
27.11.2016
14:51:49
и то, если примут реквест

Oleksandr
27.11.2016
14:51:59
первые что-то делают на регулярной основе и имеют write-access к репе

Nikita
27.11.2016
14:55:21

Mr.
27.11.2016
17:10:06
Привет
Тут есть кто-то кто может серьёзно помочь с здоровенной архитектурной ошибкой (в моих генах)?
Шутки шутками, а у меня лепечет канпелятор что я использую переменную до объявления, то есть, Illegal forward reference

Mr.
27.11.2016
17:11:53
хотя это невозможно

Митко Соловец?
27.11.2016
17:12:08
код на пастебин

Maksim
27.11.2016
17:13:36
хотя это невозможно
Возможно, если копипастил код с какого-нибудь теста и там латинская "a" заменена на кириллическую, например.

Mr.
27.11.2016
17:14:21
Я не на столько примитивен господа.
Сейчас загружу в другую ветку код и дам на "ревизию" сразу ссылку на конкретный файл.

Maksim
27.11.2016
17:14:58
Ну и как бы единственный вариант - это когда переменные действительно разные. Пробовал выделить одну из них, скопипастить и поискать по файлу?

Mr.
27.11.2016
17:17:15
https://gitlab.com/taylernest/unibot/blob/experimental/src/main/java/com/taylernest/unibot/internal/connection/DiscordClient.java
38 строка

Igor
27.11.2016
17:19:59

Google

Mr.
27.11.2016
17:20:02
Да.

Victor
27.11.2016
17:20:22
new Requests(this);

Mr.
27.11.2016
17:20:23
Я сам не понимаю, пытался переимпортировать проект по мавену, не-а
https://gitlab.com/taylernest/unibot/blob/experimental/src/main/java/com/taylernest/unibot/internal/connection/DiscordClient.java
ой
что в линуксах с копипастом
ладно потом разберусь
public List<IGuild> guildList = new CopyOnWriteArrayList<IGuild>();

Victor
27.11.2016
17:21:11
public final Requests REQUESTS = new Requests(this);
Вот тут точно всё нормально? this как бы

Admin
ERROR: S client not available

Mr.
27.11.2016
17:22:02
ну как бы тут прикол на порядке конструирования

Igor
27.11.2016
17:22:06
так а в чём проблема, Виктор?
ну, this определён, это ж в конструкторе всё дело
будет выполняться*

Mr.
27.11.2016
17:22:23
IDiscordClient нужен ведь
а чем вы отличаетесь?
и на 38 строку и ругается?
так а в чём проблема, Виктор?
?

Igor
27.11.2016
17:23:27

Google

Igor
27.11.2016
17:23:36
и звездочкой возле имени

Mr.
27.11.2016
17:23:49
которую никто не видит

Igor
27.11.2016
17:24:02

Victor
27.11.2016
17:24:08
Не, просто this в конструкторах - опасное дело.
А конкретно сообщение об ошибке можно?

Mr.
27.11.2016
17:24:09
Ааааа.
26 символ, это же IGuild

Igor
27.11.2016
17:24:51
её и в том списке нет.

Mr.
27.11.2016
17:24:57
В чём, блин, хрень-то!?
ну не может же быть что на этапе конструктора не сделан IGuild?
Блин, попробую руками собрать сначала его

Maksim
27.11.2016
17:29:02
@taylernest, а зачем тебе файлы проектов в репозитории?

Mr.
27.11.2016
17:29:45
понятия не имею))0)
позже уберу.
да что за херня то
может кто-то попробывать скомпилировать, может это я маг-долбоёб?

Митко Соловец?
27.11.2016
17:34:40
короче, ты пытаешься использовать ссылку до того, как она объявлена
вот ищи концы

Mr.
27.11.2016
17:35:24
О
Нууу
Есть предложение найти использования

Митко Соловец?
27.11.2016
17:35:50
ты от нас то, что хочешь?
тут такая проблема, что решишь её только ты сам