
guga
22.02.2017
13:39:03

Руслан
22.02.2017
13:39:04
AspectJ вроде ломался с ним

Boris
22.02.2017
13:39:10
Дело не в граблях, а в том, что минимум половина удобства разработки на джаве это иде, а ламбок делает из иде тыкву

Quantum Harmonizer
22.02.2017
13:39:31

Google

guga
22.02.2017
13:39:45

Quantum Harmonizer
22.02.2017
13:40:40
apt?
https://docs.oracle.com/javase/1.5.0/docs/guide/apt/GettingStarted.html

guga
22.02.2017
13:40:45
с ним всё нормально

Boris
22.02.2017
13:42:54

guga
22.02.2017
13:43:28
то что я часто юзаю, а именно @data работало нормально

Boris
22.02.2017
13:43:55
А экстеншны?

guga
22.02.2017
13:44:13
не юзаю, привык писать StringUtils

Boris
22.02.2017
13:44:20
А в котлине работают ?

Руслан
22.02.2017
13:46:35
https://github.com/rzwitserloot/lombok/issues/985
Ну вот как бы к чему приводит, если костылять вокруг компилятора
> I'm convinced it will work in the end. I do fear that there need to be compiler flags to open up to lombok. How bad it will be, we don't know yet.

guga
22.02.2017
13:48:48

Google

Руслан
22.02.2017
13:49:04
ну какая это джава)

Quantum Harmonizer
22.02.2017
13:49:11
не юзаю, привык писать StringUtils
ага)
http://grepcode.com/file/repository.grepcode.com/java/ext/com.jetbrains/intellij-idea/12.0/com/intellij/openapi/util/io/FileUtil.java

Руслан
22.02.2017
13:49:49
Это по-сути новый язык, потому что код который ты пишешь, это невалидный java код

guga
22.02.2017
13:50:02
кстати, а как @val работает?

Руслан
22.02.2017
13:50:14
Самое норальное что там есть, это деломбок)

guga
22.02.2017
13:50:28
вот делаешь ты @val a = new AList<A>()

Руслан
22.02.2017
13:50:59
ну ломбок генерит новый сорс файл, и скармилвает javac)

Quantum Harmonizer
22.02.2017
13:51:30
Поясните непросвящённому, что получается в итоге?

guga
22.02.2017
13:51:32
у тебя в a — Alist, List, Collection?

Quantum Harmonizer
22.02.2017
13:51:47
type alias?

Руслан
22.02.2017
13:51:54
https://projectlombok.org/features/val.html

guga
22.02.2017
13:53:01
ну тут показано тип -> тип
а не тип -> любой тип выше по иерархии

Руслан
22.02.2017
13:54:08
ничего не понял

Quantum Harmonizer
22.02.2017
13:54:40
Красиво, но с большим успехом можно писать на Котлине :)

guga
22.02.2017
13:55:03
как часто ты делаешь
AList<A> a = new AList<>()
и как часто
List<A> a = new Alist<>()

Google

Руслан
22.02.2017
13:56:04
Первое почти никогда
Но это сильно зависит от того что ты пишешь

Quantum Harmonizer
22.02.2017
13:56:40
Я в локальных переменных регулярно это пишу реализацию. В полях оставляю интерфейс, да. В любом случае, это почти ни на что не влияет.

guga
22.02.2017
13:57:14
вот, а @val ломбока ставит, походу, тот же тип что и справа

Quantum Harmonizer
22.02.2017
13:57:36
val в Kotlin тоже так работает, что изменилось из-за этого?

guga
22.02.2017
13:59:24
И что?
не могу придумать случай когда это плохо

Руслан
22.02.2017
13:59:33
ну мне кажется val в котлине работает чуть умнее)

guga
22.02.2017
13:59:38
но определённо плохо

Quantum Harmonizer
22.02.2017
14:00:38

Boris
22.02.2017
14:11:19
Вообще конечно лучше использовать общий тип

Руслан
22.02.2017
14:14:20
Зависит от задачи

Руслан
22.02.2017
14:15:06
Может в AList есть метод, который заточен на перформанс, и ты этот AList для того и создал, чтобы его иметь)

Boris
22.02.2017
14:17:38
это в общем случае, чтобы не прошляпить сутацию, когда ты передаешь конкретный тип дальше
конечно, это не вырезано в камне, вполне бывают ситуации, когда это необходимо
я просто не часто, но сталкивался с проблемами с этим связанными, они не смертельны, но без них было бы чище и проще оирентироваться в коде
в котлине часто на это кладу, потому что часто тип не пишу для локльных переменных особенно

guga
22.02.2017
14:20:52

Boris
22.02.2017
14:21:22
ну да, я вот например люблю генерировать методы от использования
и идея мне нагенерит ArrayList

Google

Boris
22.02.2017
14:21:39
и пошло поехало
но эта проблема конечно не стоит того внимания, которое мы ей уделили ?

Quantum Harmonizer
22.02.2017
14:29:07
В Android есть Bundle.putParcelableArrayList, поэтому иногда удобно держать тип реализации :)

Vlad
22.02.2017
18:01:17
https://twitter.com/tproger/status/834461033687351296
как вам современный твит

Руслан
22.02.2017
18:01:47
?

Roman
22.02.2017
19:55:50
есть ли возможность использовать с котлином android annotations? например @LayoutRes с property не удается с ходу подружить. есть какие-то известные обходные пути?

Admin
ERROR: S client not available

Igor
22.02.2017
20:21:11
Господа, я правильно понимаю что (java9) Flow.Publisher<T> (используя как rx.Single) можно использовать как IO монаду?
Тк оно ленивое и к нему можно написать bind() и fmap().

Boris
22.02.2017
20:22:35
Сингл возможно реализует Паблишера, но это явно не одно и тоже

Quantum Harmonizer
22.02.2017
20:23:22

Igor
22.02.2017
20:23:57

Roman
22.02.2017
20:25:12
А где там оно не дружит?
override val layoutResource: @LayoutRes Int
вот что-то такое пытаюсь сделать - This annotation is not applicable to target 'type usage'

Boris
22.02.2017
20:26:22
Везде вроде пишут про монаду, наверное монада

Quantum Harmonizer
22.02.2017
20:26:32

Roman
22.02.2017
20:27:27

Андрей
22.02.2017
20:27:31
или
@field:FLayoutRes
override val layoutResource: Int

Igor
22.02.2017
20:27:36

Boris
22.02.2017
20:27:55

Quantum Harmonizer
22.02.2017
20:28:07

Google

Андрей
22.02.2017
20:28:58

Boris
22.02.2017
20:29:36
Только интерфейсы как я понимаю

Андрей
22.02.2017
20:30:21
почему нет? flow разве не реализует реактивные стримы

Igor
22.02.2017
20:30:30
А что это в практическом смысле дает?
То что можно писать функции без побочных эффектов (если мы говорим про монаду IO).
А если скомбинировать с коррутинами, то можно наверное повторить хаскелевсикий do.
Что это глобально дает разработчику, вопрос открытый.

Boris
22.02.2017
20:31:42

Roman
22.02.2017
20:32:02
private fun test(a: @StringRes Int)
вот так тоже не получается
таже ошибка

Андрей
22.02.2017
20:32:42
private fun test(@StringRes a: s Int)

Boris
22.02.2017
20:33:24

Roman
22.02.2017
20:34:12
но валидации никакой
@LayoutRes val b : Int = layoutResource
@StringRes var a: Int
a = b
никаких ворнингов даже

Андрей
22.02.2017
20:34:40
Зато уже и RxJava, и Reactor, и Akka имплементят реактивные стримы, и теперь потоки с одной библиотеки конвертятся в другие. стандартизация

Boris
22.02.2017
20:34:52

Roman
22.02.2017
20:35:04

Boris
22.02.2017
20:35:15

Roman
22.02.2017
20:35:21
но оно все равно не работает как в джаве (по крайней мере так как я ожидаю)

Андрей
22.02.2017
20:36:09