
Egor
24.07.2018
10:56:17
da, eto jesko

Роман
24.07.2018
10:57:32
ческо?

Andrey
24.07.2018
10:57:41
это плохое ветвление? Если да то как решить траблу?
Так какую траблу решать-то?
Обычно обработку исключений делают так:
если UnknownHostException, то <код для обработки UnknownHostException>
если SocketException, то <код для обработки SocketException>
...
иначе <код обработки для всех остальных случаев>

Роман
24.07.2018
10:58:22
ну я и говорю если это плохое ветвление

Google

Andrey
24.07.2018
11:07:57
ну я и говорю если это плохое ветвление
Не бывает плохих и хороших ветвлений. Ветвление отражает некоторую логику, решающую некоторую проблему.
Вот я и пытаюсь понять, для какой проблемы вам понадобилось проверить, что тип исключения не принадложит некоторому набору типов
BTW, конкретно ваше условие можно переписать так (не уверен, что это особо лучше, да и работать будет только на Kotlin под JVM):
if (e.cause?.javaClass !in setOf<Class<*>?>(UnknownHostException::class.java, SocketException::class.java, ConnectException::class.java)) {
}

Quantum Harmonizer
24.07.2018
11:08:31

Andrey
24.07.2018
11:09:10
Для не финальных классов будет так (должно работать не только для JVM):
if (!setOf(UnknownHostException::class, SocketException::class, ConnectException::class).any { it.isInstance(e.cause) }) {
}

Quantum Harmonizer
24.07.2018
11:17:28

Andrey
24.07.2018
11:18:40
this :)
Не совсем. достаточно просто ::class . ::class.java не заработает не в JVM реализации.

Igor
24.07.2018
11:32:26

Bogdan
24.07.2018
11:34:48

Mikhail
24.07.2018
11:36:20

Roman
24.07.2018
11:37:13

dimiii
24.07.2018
11:45:23

Roman
24.07.2018
11:45:59

Igor
24.07.2018
12:03:52
Куда не нажмёшь там, ничего не изменяется, код полностью красный и отказывается запускаться. В чём проблема? Другие проекты работают

Google

Bogdan
24.07.2018
12:04:28
Gradle ? У меня такое было Configure помагало

Igor
24.07.2018
12:04:34
Maven

Konstantin
24.07.2018
12:05:12
а в котле как то можно динамически по именам к полям обращаться?

Igor
24.07.2018
12:05:17

Bogdan
24.07.2018
12:05:21
Maven
А там котлин настроен, проблема скорей там

Igor
24.07.2018
12:05:32
То есть?

Konstantin
24.07.2018
12:05:35
например если есть мапа с ключами-строками, могу я по ним искать названия полей в data-class ? и заполнять их

Bogdan
24.07.2018
12:06:13
То есть?
Ну в мавене прописывается плангин и пару настроек

Igor
24.07.2018
12:06:29
Сейчас попробую, спасибо

Andrew
24.07.2018
12:07:08

Konstantine
24.07.2018
12:07:15

Bogdan
24.07.2018
12:07:23

Konstantin
24.07.2018
12:09:11
передавать просто мап, в источнике заполнять ее, опционально, в будущем добавляя только по ключам, в назначении использовать генерик-метод какой нить который будет дтошку заполнять и чтобы это не переписывать

Ivan
24.07.2018
12:09:53
Через отражения опять же, поиск по declaredMemberProperties

Konstantin
24.07.2018
12:10:16
т.е. при добавлении новых свойст писать только в дата-классе и в источнике где мапу заполняю, а остальное пусть остается как есть... типа того

Bogdan
24.07.2018
12:11:08

Konstantin
24.07.2018
12:11:28
ага, лан, пасибо почитаю

Google

Bogdan
24.07.2018
12:12:39

Konstantin
24.07.2018
12:13:30
copy

Andrew
24.07.2018
12:16:04
Да, для дата-класса как есть не прокатит, увы.

Alexey
24.07.2018
12:18:07
Почему бы просто в команьоне не написать фабрику: Map<String, Any> => YoutDataClass

Konstantin
24.07.2018
12:21:54
https://kotlinlang.org/docs/reference/delegated-properties.html#storing-properties-in-a-map
вот это нашел, должно помочь

Igor
24.07.2018
12:25:15

Konstantine
24.07.2018
12:26:42
Map<String, T> -> YourDataClass!

dimiii
24.07.2018
12:38:57

Alexey
24.07.2018
12:46:26

Igor
24.07.2018
12:57:41
Ого, это волшебно! Скромное очарование котлина
Не хотел бы придираться, но это реально "волшебство".
В компиляторе пропилены дырки для операторов getValue/iterator и можно обобщенно добавлять поведение без наследования.
А мы как юзеры не можем так делать (пока).

Илья
24.07.2018
15:04:23
Привет! подскажите, пожалуйста - есть интерфейс с функцией, в которой есть параметр с дефолтным non-null аргументом. В Котлине есть возможность средствами языка вызывать функцию с дефолтным параметром, если аргумент == null, и с самим аргументом, если он не null?

Alexey
24.07.2018
15:10:33
Тут скорее будет правильно сделать метод с null и в нём вызывать уже тот который не null с дефолтным параметром
не js всё таки

Илья
24.07.2018
15:12:08
Вариантов много, просто хотел узнать, нет ли в языке такой возможности =)

Жабра
24.07.2018
15:54:57
https://tproger.ru/articles/kotlin-magic-functions/ мб кому-то будет полезно

Alexander
24.07.2018
17:01:20
Да скорей всего, isInstans
Не нужно. Проверки типов и все простые рефлекты присуствуют из коробки. Дополнительная библиотека нужна для всяких тонких манипуляций с типами.

Kirill
24.07.2018
17:34:59
Кто-то использовал socket io вместе с ктором или спрингом?
Веб сокеты на главной странице, а о socket io будто никто не слышал

Quantum Harmonizer
24.07.2018
17:36:14

Google

Kirill
24.07.2018
17:36:33
Сокеты + поллинг

Quantum Harmonizer
24.07.2018
17:38:05
вебсокеты?

Kirill
24.07.2018
17:38:19
Да

Alexander
24.07.2018
17:43:40

Admin
ERROR: S client not available

Igor
24.07.2018
17:45:56

Никита?❄️
24.07.2018
18:23:56

Quantum Harmonizer
24.07.2018
18:39:10
У котлина какие-то проблемы с пониманием member extension operator fun invoke или это только у меня?
member — ok, extension — ok, на стыке — не ок
ага, порядок ресиверов имеет значение

Жабра
24.07.2018
18:44:10

Quantum Harmonizer
24.07.2018
18:46:31
А можно пример?
open class DslHost {
operator fun DslElement.invoke() = TODO()
}
class DslElement {
operator fun DslHost.invoke() = TODO()
}
...
class Wtf : DslHost {
val element = DslElement()
val lookAtMe = element()
}

Жабра
24.07.2018
18:50:21

Quantum Harmonizer
24.07.2018
18:51:10
Кхм, извращение какое-то.
да, пишу на пределе возможностей языка, самому страшно
https://gist.github.com/Miha-x64/319313c1076fbfcccaf948d76c0c40f9

Igor
24.07.2018
19:06:03

Quantum Harmonizer
24.07.2018
19:06:14

Кузьма
24.07.2018
19:21:34
Всем привет, можете подсказать как отфильтровать коллекцию по максимальным элементам?

Quantum Harmonizer
24.07.2018
19:22:00

Кузьма
24.07.2018
19:22:09
Если есть 5 5 5 3 2 1,
То результатом должно быть 5 5 5
В функциональном стиле

Google

Кузьма
24.07.2018
19:22:35
Какой-то хитрый filter

Quantum Harmonizer
24.07.2018
19:22:37

Dumitru
24.07.2018
19:23:06
lst.filter{ it == lst.max() }
Как-то так

Quantum Harmonizer
24.07.2018
19:24:06

Dumitru
24.07.2018
19:24:21
Почему квадрат?

Quantum Harmonizer
24.07.2018
19:24:45

Dumitru
24.07.2018
19:24:57
Ну можно вынести это

Кузьма
24.07.2018
19:24:59
Сколько раз вычислится lst.max()

Dumitru
24.07.2018
19:25:03
Не в этом суть была

Кузьма
24.07.2018
19:26:05
А функция свёртки мне не поможет?

Quantum Harmonizer
24.07.2018
19:26:39

Кузьма
24.07.2018
19:26:48
Да

Quantum Harmonizer
24.07.2018
19:27:02
можно, конечно, но будет страшно