@kotlin_lang

Страница 277 из 982
Anton
10.08.2017
14:27:30
о там тоже теперб будет тайп инференс?

Ilia
10.08.2017
14:28:10
ладно, а есть подводные камни с котлин -> js ? неочевидные всякие штуки мб

Quantum Harmonizer
10.08.2017
14:31:38
о там тоже теперб будет тайп инференс?
Он там появился в пятом релизе, с дженериками.

Anton
10.08.2017
14:32:41
при обьявлении переменных

Google
Quantum Harmonizer
10.08.2017
14:33:41
при обьявлении переменных
где почитать об этом?

Anton
10.08.2017
14:33:48
http://blog.takipi.com/project-amber-the-future-of-java-exposed/

Quantum Harmonizer
10.08.2017
14:36:24
Anton
10.08.2017
14:36:48
))))))

ну они в отдельном проекте каком то как я понял

Михаил
10.08.2017
14:37:31
в котлине

Anton
10.08.2017
14:37:51
хаха

Strashko
10.08.2017
14:50:07
Всем привет, в android studio 3.0 beta1 нужно использовать kapt или anotationProcessor уже научился работать с котлином и аннотациями?

Народ, помогите, че делать, например с анотациями в новой студии при использовании kotlin(

Strashko
10.08.2017
15:32:38
apply plugin "kotlin-kapt"
Его я и использую, но не видит dagger-android-processor

Eugene
10.08.2017
15:33:21
покажи как подключаешь

Google
Eugene
10.08.2017
15:33:24
даггер

Strashko
10.08.2017
15:35:53


Evgeniy
10.08.2017
19:04:03


Badya
10.08.2017
19:30:26
Коллеги, а есть ли какой-то оверхед от того что я все функции буду делать suspend, даже если им это и не требуется?

DarkMentat
10.08.2017
19:33:40
зачем??

Badya
10.08.2017
19:43:09
Иинтересно есть ли оверхед, вопроса "зачем" не стоит

Kirill
10.08.2017
19:46:26
Сильно больше байткода будет. По дополнительному классу на каждую функцию.

Михаил
10.08.2017
19:50:07
Ну и вызов тоже дороже будет

Quantum Harmonizer
10.08.2017
19:53:09
Kirill
10.08.2017
20:04:06
Скорей по состоянию у стейт-машины.
на каждую функцию у которой есть suspention points будет генерится класс. Если все функции будут suspend, то они все(почти) будут содержать suspention points. в итоге на каждую функцию будет целый класс, который будет наследником CoroutineImpl

Скорей по состоянию у стейт-машины.
состояния стейт машины будут генериться по количеству suspention points, но она будет инлайниться в метод и много места занимать не будет

Коллеги, а есть ли какой-то оверхед от того что я все функции буду делать suspend, даже если им это и не требуется?
Ты можешь написать код и потом вызвать действие "show kotlin bytecode" и посмотреть на то что будет создано. Плагин должен быть 1.1.4, там добавили встраивание стейтмашин в именованные функции

Badya
10.08.2017
20:16:07
Вот хотел плагином и поглядеть но все повисло) обновлюсь. Спасибо!

Михаил
10.08.2017
23:44:43
еее

https://youtrack.jetbrains.com/issue/KT-10542

спустя два года пофиксили :D

Artem
10.08.2017
23:47:30
Pavel
11.08.2017
07:54:12
Как вы на котлине передать тип в gson, если этот тип - дженерик?

Пробую что-то типа object : TypeToken<T>() {}.type Но gson парсит это дело в LinkedTreeMap

Google
Quantum Harmonizer
11.08.2017
08:18:34
Pavel
11.08.2017
08:20:02
Ну вот не работает TypeToken чего-то. T- нет, не стертый, обычный дженерик.

Вот пример http://simplecat.tk/shots/shot-170811-112120-873760.png

На 17 строке я пытаюсь получить TypeToken дженерика классическим способом явы. Но он не работает, и gson возвращает LinkedTreeMap. Поэтому мне приходится руками передавать Class<T> чтобы это работало (строка 19)

Quantum Harmonizer
11.08.2017
08:23:42
Ну потому что Т стёртый.

TypeToken не догадывается, каким типом является Т.

Pavel
11.08.2017
08:27:58
А можете объяснить, почему он стирается?

Quantum Harmonizer
11.08.2017
08:31:20
А можете объяснить, почему он стирается?
Потому что дженерики появились в Java 5, и из вставили так аккуратно, чтобы ничего не менять в виртуальной машине.

Pavel
11.08.2017
08:32:11
Так. И как в таком случае решить проблему и получить TypeToken?

Quantum Harmonizer
11.08.2017
08:35:50
Anton
11.08.2017
08:36:16
а через reified дженерики не решится?

Dmitry
11.08.2017
09:00:07
так-то решится

Pavel Shackih
11.08.2017
10:31:39
а можете еще раз напомнить почему, если есть nullable проперти в классе то смарткаст не сработает, ругается что мутабельное проперти может измениться на этот момент, но при этом safe call отрабатывает без ошибок? Ведь в обоих случаях в байткоде будет одна и также конструкция

Quantum Harmonizer
11.08.2017
10:32:44
а через reified дженерики не решится?
решится, но не в случае с тайп-параметром класса

Igor
11.08.2017
11:51:13
А как DSL билдер заставить кушать vararg-и? Или не стоит пытаться такое сделать?

Igor
11.08.2017
11:54:40
в чём вопрос?
Есть DSL билдер, в который мне хочется пропихивать помимо прочего, vararg children-ов, то есть, грубо говоря, передавать функцию а-ля init: Builder.() -> vararg SomeChildElement. Так сделать, очевидно, нельзя. Но есть ли какой-то способ просто и без гемора пропихнуть вот такого формата init: {SomeElement(), SomeElement(), SomeElement()} заместо { arrayOf(SomeElement(), SomeElement(), SomeElement()) }?

Google
Igor
11.08.2017
11:57:12




Снизу - то, как я хочу, чтобы оно работало, сверху - то, как работает, собственно

Quantum Harmonizer
11.08.2017
11:58:42
а нужно передавать именно фабрику аттрибутов? я про ({ XmlAttribute(...) })

Admin
ERROR: S client not available

Igor
11.08.2017
11:59:52
а нужно передавать именно фабрику аттрибутов? я про ({ XmlAttribute(...) })
По типу того. В идеале - хотелось бы, поскольку потом абсолютно так же нужно передавать фабрику элементов в документ, и там я уже не отделаюсь от этого

Quantum Harmonizer
11.08.2017
12:01:09
можно оператор переопределить, например attributes { + { XmlAttribute("3", "3") } + ... }

Igor
11.08.2017
12:01:54
Ну, это, конечно, решение, и оно используется в kotlinx.html, но мне оно как-то не особо нравится ?Хотя, если нет аналогов, то придется сделать именно так. Спасибо!

Мдя. Забавно, что, если сказать, что это сделано с помощью перегрузки оператора для получателя в лице функции, используемой внутри билдера, то появляется желание удалить код и перейти обратно на java ?

Vadim
11.08.2017
12:44:03
псс ребзя) есть у кого опыт Mockito + kotlin?

Anton
11.08.2017
12:44:14
есть хуевый опыт

Михаил
11.08.2017
12:44:28
псс ребзя) есть у кого опыт Mockito + kotlin?
практикую. в чем траблы?)

Vadim
11.08.2017
12:44:33
чому private var provider: Dog = Dog() мокается

private val provider: Dog = Dog()

нет

Михаил
11.08.2017
12:45:15
ну видать мокито не умеет в файнал поля мокать

Vadim
11.08.2017
12:45:39
ну об этом можно догадаться)

Михаил
11.08.2017
12:45:40
я обычно юзаю lateinit var

Vadim
11.08.2017
12:45:57
ну прост хотлось бы immutable поля иметь

ну ок чо) гугл тоже ерунду какую-то говорит

Google
Konstantine
11.08.2017
12:46:37
Михаил
11.08.2017
12:46:58
а как это работать долно?)

Konstantine
11.08.2017
12:47:59
Возможно мокито не в файнал не умеет, а к моменту инициализации еще не могет. А с бай лейзи поди сработает)

Предположение тупо)

Vadim
11.08.2017
12:48:31
не помогло(

Михаил
11.08.2017
12:49:24
как вариант можно без аннотаций

Quantum Harmonizer
11.08.2017
12:49:35
я, может, ничего не понимаю в ООП, но зачем мокать поля?

Михаил
11.08.2017
12:50:04
не помогло(
private val mockModel = mock<Model?)

юзай korlin mockito https://github.com/nhaarman/mockito-kotlin

уберет боль некоторую

Vadim
11.08.2017
12:51:28
ну не, тут только в вторую мокито работу с final classes завезли из коробочки

для котлина

Михаил
11.08.2017
12:52:07
а это просто набор расширений, работает вместе с мокито вторым

давно завезли mock файнал классов))

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