@kotlin_lang

Страница 52 из 982
Руслан
22.02.2017
13:39:04
AspectJ вроде ломался с ним

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

Quantum Harmonizer
22.02.2017
13:39:31
java annotation processor
Это не то же что и apt?

Google
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.

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
это в общем случае, чтобы не прошляпить сутацию, когда ты передаешь конкретный тип дальше
так это же проблема того кто принимает, потому я и написал, что не могу придумать случаев, когда val не от конкретного типа — плохо.

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
Сингл возможно реализует Паблишера, но это явно не одно и тоже

Igor
22.02.2017
20:23:57
Сингл возможно реализует Паблишера, но это явно не одно и тоже
Ну да, я имел ввиду что если юзать Publisher как Single те onNext() и сразу onComplete()

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
Везде вроде пишут про монаду, наверное монада

Roman
22.02.2017
20:27:27
@LayoutRes override val...
ну так таже ошибка только target другой

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

Igor
22.02.2017
20:27:36
Везде вроде пишут про монаду, наверное монада
Я тут набросал код http://pastebin.com/dLYE3aYp - вроде очень похоже на то что есть в Haskell

Quantum Harmonizer
22.02.2017
20:28:07
Google
Андрей
22.02.2017
20:28:58
А что это в практическом смысле дает?
Что в 9-ой джаве реактивное программирование из коробки идет?

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
почему нет? flow разве не реализует реактивные стримы
Ну, реализации в jre не будет, если я все правило понял

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)

Roman
22.02.2017
20:34:12
private fun test(@StringRes a: s Int)
да, так компилируется

но валидации никакой

@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:21
но оно все равно не работает как в джаве (по крайней мере так как я ожидаю)

Андрей
22.02.2017
20:36:09
но оно все равно не работает как в джаве (по крайней мере так как я ожидаю)
Линт его не хавает, и это печально. Но мы у себя всеравно юзаем, надеясь что в будущем починят

Страница 52 из 982