@jvmchat

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

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

Oleksandr
27.11.2016
14:11:25
Потому что опшнл тебе ничего не дает, кроме как классовую обертку над наллом. Из бонусов, ты получаешь объект с методами. А из минусов, тебе все равно может придти null, + у тебя какая-то непонятная многословность для работы с ним
стоп-стоп, ты путаешь есть 2 аспекта у опшнов и ?: 1) безопасность для наллов 2) автоупаковка всего из джавы в опшн или ? так вот 2 для опшнов точно так же решается отдельно, как и для ? — никто не мешает аналогичным образом на уровне компилятора почти все их джавы оборачивать в опшн

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
Null -- это фича языка. И работа с ним должна идти на уровне языка. А не костылями.
а ? разве не костыль? учитывая, что он по сути является проверкой на налл. в котлине в not-nullable ты можешь поймать налл из джава кода? вроде да

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

Oleksandr
27.11.2016
14:14: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
ну, это аргумент надеюсь, если скала таки прикрутит автоанализ, то сразу для опшнов

и чо-то я не вижу, что Optional в джаве будет развиваться
в джаве просто все фичи с стримами как-то криво сделаны, с кучей неочевидных граблей и это даже не мнение одного левого скалиста, а одного из тех, кто эти стримы делал

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 на русском языке? скиньте пжлст)

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
мб у кого-нибудь есть spring in action 4 на русском языке? скиньте пжлст)
в нашем канале книга или в дкоументах вконтакте

Берял
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 к репе

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 строка

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
ты от нас то, что хочешь?

тут такая проблема, что решишь её только ты сам

Страница 734 из 2890