
guga
17.12.2016
14:53:30
ой что это я, тесты же вперёд

Sergey
17.12.2016
14:53:30
Ну нет, работа по jdbc, с дисковым io тот ещё адок был
ну хз, на пхп нам приходится в докблоках писать какие эксепшены вылететь могут из этого метода, и phpstorm будет заебывать до последнего если ты их не поймаешь
на джаве я так радовался что оно проверяется компилятором, а на котлине они взяли и убрали это ?

guga
17.12.2016
14:55:46
Тебе же никто не мешает их ловить и сейчас.

Google

guga
17.12.2016
14:56:11
просто твои сигнатуры методов станут чище

Luger
17.12.2016
14:56:17

Sergey
17.12.2016
14:56:26
да дело не в ловить. как мне узнать побыстрому какие эксепшены могут прилететь из этого метода?

guga
17.12.2016
14:56:36
доки
ну и сам код.

Dmitry
17.12.2016
14:58:38
Ну передай налл, что ты там с этим опшном потом..
Один раз можно :-)

guga
17.12.2016
14:59:27

Антон
17.12.2016
14:59:32

guga
17.12.2016
15:01:46
я писал if (value != null), мой отец писал, и его отец, так что и ты пиши, а то посмотрите на него, опшналы захотел, ишь что удумал.

Антон
17.12.2016
15:07:36
я писал if (value != null), мой отец писал, и его отец, так что и ты пиши, а то посмотрите на него, опшналы захотел, ишь что удумал.
ну к слову Optional тоже может быть null и идея постоянно об этом сообщает, а ты уверен что аргумент в этом методе Optional, это же потенциальный NPE,давай по старому, а

Kirill
17.12.2016
15:11:36

Антон
17.12.2016
15:11:56

Google

Антон
17.12.2016
15:12:04
никтож не мешает

Nikolay
17.12.2016
15:12:33

Антон
17.12.2016
15:12:42
не
в аргументах
но в целом да, можно и так )

Dmitry
17.12.2016
15:13:04
в том-то и дело :)

Kirill
17.12.2016
15:13:07
ага,
Ну так не надо так делать :( на самом деле, заметил, что действительно с тех пор как я перестал писать на джаве и пишу на скале, не ловил NPE, только в каких-то джавовских либах с какими-то рефлекшенами типо логгеров, которые сами внутри себя что-то сеттят

Dmitry
17.12.2016
15:13:29
то вы еще в Stream<> не пробовали null передавать наверное

Антон
17.12.2016
15:13:36

Kirill
17.12.2016
15:14:26

Антон
17.12.2016
15:15:30
тоесть мапишь ты какой-либо лист с pojo на k->v и вдруг v у тебя null, и ты думаешь да насрать, что будет, в мапе же может значение быть null, и получаешь NPE

Dmitry
17.12.2016
15:17:11
List<Integer> is = Arrays.asList(null, 1,2,3);
is.stream().findFirst().ifPresent(System.out::println);
вот что по вашему это вернет?

Антон
17.12.2016
15:17:32
NPE

Kirill
17.12.2016
15:17:41

Антон
17.12.2016
15:17:42
или ничего

Dmitry
17.12.2016
15:17:42
но почему?

Антон
17.12.2016
15:18:01
потому что рукажопы писали )

Kirill
17.12.2016
15:18:15
со stream api всегда так - никогда не знаешь, когда оно достанет дробовик и пальнет тебе в лицо

Google

Alexander
17.12.2016
15:18:16
null стало можно в коллекции класть?
или всегдаможно было

Dmitry
17.12.2016
15:18:26
а почему нет? О_О

Alexander
17.12.2016
15:18:29
хз

Антон
17.12.2016
15:18:32

Dmitry
17.12.2016
15:18:34
добро пожаловать в яву

Kirill
17.12.2016
15:18:41

Антон
17.12.2016
15:18:41
)))
еще варианты? )

Dmitry
17.12.2016
15:19:07
варианты?
та херня NPE кинет, да.
потому что findFirst делает Optional.of

Alexander
17.12.2016
15:19:18
всё, вспомнил, что да
слишком избалован optional типами в современных языках программирования

Антон
17.12.2016
15:19:21

Dmitry
17.12.2016
15:19:22
какого хера там опшнл тогда не понятно
на случай пустого стрима видимо

Антон
17.12.2016
15:20:02

Dmitry
17.12.2016
15:20:07
йеп

Антон
17.12.2016
15:20:09
не ofNullable
ну ооок

Google

Антон
17.12.2016
15:20:59
но с коллектом меня тоже смутило
не очевидно нифига

Dmitry
17.12.2016
15:22:02
ну и в общем поработаешь так со стримапи, поработаешь с опшнлами, поплачешь что нету either, да и махнешь рукой
но ура, в 9-ой яве теперь есть Optional::stream

Антон
17.12.2016
15:22:54
еще нет каринга

Dmitry
17.12.2016
15:23:10
и Optional::or
каринга много где нет :( но в яве его можно симулировать, правда без lhs инференса это такой будет шум в коде :))

Kirill
17.12.2016
15:24:12
а в котлине есть currying?

Dmitry
17.12.2016
15:24:13
void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)

Admin
ERROR: S client not available

Dmitry
17.12.2016
15:24:14
huehuehue
вроде нет

Kirill
17.12.2016
15:25:03
буэээ

Антон
17.12.2016
15:25:21

Kirill
17.12.2016
15:26:06
лет через 5 там в api будут все возможные комбинации слов if, else, get, or, present

Антон
17.12.2016
15:26:08
но все ‘то выглядит как минимум странно )
вот эти вот CS <-> CF вот прямо раздражает, зачем так сделано, что толку от интерфейса если его можно однозначно привести к имплементации
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html#toCompletableFuture--

Dmitry
17.12.2016
15:29:49
как бе
никто не мешает тебе писать

Google

Dmitry
17.12.2016
15:29:56
Function<Integer, Function<Integer, Function<Integer, Integer>>> sum3 = a -> b -> c -> a + b + c;
System.out.println(sum3.apply(2).apply(1).apply(0));
кроме, конечно же, здравого смысла :)
если взять за привычку "не больше одного аргумента для функции", как у взрослых, то даже как-то можно будет с этим жить

Антон
17.12.2016
15:31:56

Dmitry
17.12.2016
15:32:08
дык был бы lhs inference..

Антон
17.12.2016
15:32:08
как и null вместо Optional передать

Ruslan
17.12.2016
15:33:25
В груви есть каррирование

Dmitry
17.12.2016
15:33:52
:) вот бы там еще типы были

Ruslan
17.12.2016
15:34:36
Они есть. Просто когда предлагаешь их использовать, почему то у другой стороны возникает вопрос: "зачем мне груви без динамики" ))

Dmitry
17.12.2016
15:35:36
ну другая сторона видимо любит рефакторить полным реврайтом проекта

Ruslan
17.12.2016
15:36:28
Я вообще не любитель закладывать груви в ядро

Dmitry
17.12.2016
15:36:44
я вообще удивлен что на нем до сих пор кто-то пишет

Ruslan
17.12.2016
15:37:09
А что тебя удивляет?
Я пока не знаю более гибкого языка

Dmitry
17.12.2016
15:38:07
лисп

Ruslan
17.12.2016
15:38:09
Для jvm
JRuby разве что
Не более но может конкурировать

Dmitry
17.12.2016
15:38:38
ну мы ж на жвм пишем чтоб компилятор ловил как можно больше багов

Ruslan
17.12.2016
15:38:57
Мы пишем чтобы решать задачи

Dmitry
17.12.2016
15:39:31
http://i.imgur.com/OsVN8P5.png

Антон
17.12.2016
15:40:42