@kotlin_lang

Страница 727 из 982
Anton
27.06.2018
12:36:09
Давайте заканчивать про шарп/дарт и прочее

Dmitry
27.06.2018
12:37:05
Если вы выразите вашу боль более конкретно, то возможно, вам даже подскажут как сделать все удобнее. Не раз и не два тут такое было :)

Руслан
27.06.2018
12:37:19
После read-only для > "ну насколько помню в жабе либы не такие качественные как в .NET" все заработало.

Andrey
27.06.2018
12:38:18
Если вы выразите вашу боль более конкретно, то возможно, вам даже подскажут как сделать все удобнее. Не раз и не два тут такое было :)
Ну, у меня боль только в написании либ на котлине, которые из джавы было бы удобно дёргать.

Google
dimiii
27.06.2018
12:39:32
А как надо делать правильно?
Я сейчас про такой эпизод https://discuss.kotlinlang.org/t/best-practices-for-loggers/226

Vladimir
27.06.2018
12:41:19
Я сейчас про такой эпизод https://discuss.kotlinlang.org/t/best-practices-for-loggers/226
Сколько интересных решений. Я делаю через делегат, который проверяет, что вызван в companion object.

dimiii
27.06.2018
12:41:51
Сколько интересных решений. Я делаю через делегат, который проверяет, что вызван в companion object.
Ну у нас конкретно был кэширующий logback (через wrapper slf4j) - с другими логгерами может быть тоже возможно

Т/е не у нас, я на руби пишу, просто со стороны посмотрел, оказалось можно val log = LoggingFactory.getLogger(...) и не терять в эффективности

Vladimir
27.06.2018
12:43:01
Ну у нас конкретно был кэширующий logback (через wrapper slf4j) - с другими логгерами может быть тоже возможно
У меня так же. В том треде есть "великолепное" решение с substringBefore, хотя можно просто взять enclosingClass.

dimiii
27.06.2018
12:43:53
Ага
Ну я еще надеюсь вернуться

Bogdan
27.06.2018
12:45:06
Но иногда нужно передать класс, глобальная инлайн функция думаю самое нормальное решение

Artur
27.06.2018
13:00:54
привет, можно в интерфейсе сделать дженерик метод и далее его реализовать с определенным типом?

Anton
27.06.2018
13:02:00
конечно

Vladimir
27.06.2018
13:02:57
привет, можно в интерфейсе сделать дженерик метод и далее его реализовать с определенным типом?
Можно сделать дженериком весь интерфейс. Можно просто навесить дженерик на метод. Что нужно сделать-то?

Google
Artur
27.06.2018
13:03:53
возвращаемый тип в нём сделать дженериом, потом реализовать этот интерфейс у двух классов и чтобы они возвращали разный тип

Интерфейс fun <T> getImages(query: String, page: Int, perPage: Int): T override fun getImages(query: String, page: Int, perPage: Int): Single<List<Image» {

как потом его оверайднуть правильно?

Костя
27.06.2018
13:05:48
ну очевидно что у названия метода в даймондах должен быть тип Single ещё

со всеми внутренностями

Vladimir
27.06.2018
13:06:14
как потом его оверайднуть правильно?
Надо делать интерфейс дженериком

Костя
27.06.2018
13:06:33
или да

сам интерфейс

Artur
27.06.2018
13:06:38
Надо делать интерфейс дженериком
не хочется так делать (

Anton
27.06.2018
13:06:43
почему?)

Костя
27.06.2018
13:06:47
тип Т у него вешать

Artur
27.06.2018
13:07:12
ну потому что мне нужен дженерик только на один метод

на весь интерфейс вешать так себе

dimiii
27.06.2018
13:07:30
Опять эти Single<List<*>>

Костя
27.06.2018
13:07:34
но указать можно у интерфейса

Anton
27.06.2018
13:07:37
почему так себе то? я не онимаю что теряешь?

Костя
27.06.2018
13:07:39
так даже грамотнее

при имплементации указывать тип у интерфейса и всё

Artur
27.06.2018
13:08:37
я ничего не теряю, просто что выглядеть это будет немного странно, или мне просто так кажется

Anton
27.06.2018
13:09:05
а сколько методов в интерфейсе

Google
Konstantin
27.06.2018
13:09:17
я ничего не теряю, просто что выглядеть это будет немного странно, или мне просто так кажется
Кажется. У дженерик-интерфейса не все методы обязаны быть с дженериками.

Artur
27.06.2018
13:09:25
это пока не сказать, там датасорс

Костя
27.06.2018
13:09:36
тем более можно несколько параметров вводить наверно

если разные методы будут дженерики юзать

дженерик тип

Artur
27.06.2018
13:09:56
ну это в принципе верно

буду пробовать, спасибо за советы

Konstantine
27.06.2018
13:21:08
Есть какой-нибудь способ интересный сделать работу с SharedPreference.Editor более красивой? Он не реализует интерфейс клоусабл, поэтому use не подходит. Пока идея с with или apply, но тогда всё равно в конце нужно будет вызывать apply.

Просто не нравится мне эта портянка из editor... editor... editor... editor.apply

Dmitrii
27.06.2018
13:21:44
пеши через точку

Dmitrii
27.06.2018
13:22:24
prefs.edit().putSomeShit(key, shit).apply()

Konstantine
27.06.2018
13:22:40
kotpref
Нет его в проекте и заносить ради одного места с шаредом не хочу.

Костя
27.06.2018
13:22:50
kotpref
кот ?

Konstantine
27.06.2018
13:23:14
prefs.edit().putSomeShit(key, shit).apply()
Там не все подряд. Есть место проходящее по циклу и вставляющее данны

Quantum Harmonizer
27.06.2018
13:23:53
циклы и условия делать в apply/also

Konstantine
27.06.2018
13:25:24
Хм. Норм, надо попробовать.

сделать свой use и всё?
Свой экстеншн это понятно. Думал может есть встроенные интересные средства.

Google
Alexander
27.06.2018
17:32:52
Подскажите, пож-та, насколько сильно замедляет компиляцию вызов inline функций внутри других inline функций? Разницы никакой или так лучше не делать?)

Lev
27.06.2018
17:33:51
Есть data class в котором только одно поле всегда не null. Как идиоматично найти это поле?

Igor
27.06.2018
17:37:40
Есть data class в котором только одно поле всегда не null. Как идиоматично найти это поле?
Идиоматично так не писать, а использовать sealed classes. А не нулевое поле можно через рефлексию искать.

Alexander
27.06.2018
17:39:40
спасибо!?

Lev
27.06.2018
17:46:59
Идиоматично так не писать, а использовать sealed classes. А не нулевое поле можно через рефлексию искать.
Я так передаю данные на фронт. Т.к. сериализатор не может полиморфизм на фронте, как я понял.

А вот между явой так передавать наверно можно... Про sealed и не подумал. Но это круто.

... рефлексия наверно долго... не?

... а List<ByteArray> как красиво сконкатенировать в один?

Lev
27.06.2018
17:58:34
жалко flatten нету

dimiii
27.06.2018
17:59:01
жалко flatten нету
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/flatten.html ?

Lev
27.06.2018
17:59:59
Поясни пожалуйста, что значит не идиоматично? Почему?
Ну раз котлин - то все должно быть идиоматично.

Igor
27.06.2018
18:00:01
... а List<ByteArray> как красиво сконкатенировать в один?
можно так list.fold(ByteArrayOutputStream()) { a, x -> a.write(x); a }.toByteArray() или так val size = list.sumBy(ByteArray::size) list.fold(ByteBuffer.allocate(size), ByteBuffer::put).array()

Lev
27.06.2018
18:00:15
К ByteArra не применишь. А загонять в box - ну чет ваще

Антон
27.06.2018
18:01:30
Reduce?

dimiii
27.06.2018
18:03:01
Lev
27.06.2018
18:07:04
Reduce?
listOf(byteArray1, byteArray2, byteArray3) .reduce { a, b -> a + b}

Google
dimiii
27.06.2018
18:13:38
А нет, все имеется https://developer.android.com/reference/java/nio/package-summary

ViRuLenT ? ‮‮ ‮‮ ‮ ‮‮ ‮‮ ‮‮ ‮‮ ‮‮ ‮‮
28.06.2018
02:23:22
Hello

Vitaly
28.06.2018
04:48:33
Привет всем. У меня есть rx код, который эммитит gps координаты. Т.е. как только они меняются, я сразу об этом узнаю. И работает он бесконечно, пока я его не останавлю. Возможно ли что-то подобное написать на корутинах?

Roman
28.06.2018
05:09:13
https://github.com/Kotlin/kotlinx.coroutines/blob/master/reactive/coroutines-guide-reactive.md

Yehor
28.06.2018
07:06:28
Собираю проект в intellij, в настройках артифактов указал все зависимости но ресурсы в jar не тянутся (папка отмечена как ресурсы). Делаю тоже самое гредлом, все нормально работает. Кто-то может подсказать где можно прочитать про билд систему в idea intellij. На сайте наешел только описание, откройте в gui проект, выберите artifacts добавте библиотеки, манифест и все. если не собирать jar то все работает прекрасно.

ПС SomeMyClass.javaClass.getResource(".") SomeMyClass.javaClass.getResource("/") SomeMyClass.javaClass.getResource("") SomeMyClass.javaClass.classLoader.getResource("") SomeMyClass.javaClass.classLoader.getResource(".") SomeMyClass.javaClass.classLoader.getResource("/") всегда в jar выдают null это нормально? как получить каталог где лежат джарники кроме: this.javaClass.protectionDomain.codeSource.location.path

Kirill
28.06.2018
07:11:38
Каталог это не ресурс

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