
Жабра
04.10.2018
18:53:03
не знаю, но не выглядит как желаемый результат)
Вот весь код
Map<ApiGroup, Set<ApiGet>> groupedMethods = methods.stream().collect(Collectors.groupingBy(apiDescriptions::getGroup, Collectors.toSet()));
Map<ApiGroup, Set<ApiGet>> sortedGroupedMethods = new TreeMap<>(Comparator.comparingInt(ApiGroup::getOrder));
sortedGroupedMethods.putAll(groupedMethods);

Andrew
04.10.2018
18:53:49

Alexander
04.10.2018
18:54:05

Andrew
04.10.2018
18:54:49

Google

Жабра
04.10.2018
18:55:03

Alex
04.10.2018
18:56:50

Жабра
04.10.2018
18:57:02

Beholder
04.10.2018
18:59:07

Andrew
04.10.2018
19:00:18
Дык эцсамое, methods.groupBy(ApiGroup::getGroup) как минимум для того, чтобы Map получить. А вот про TreeMap с компаратором надо подумать.

Alexander
04.10.2018
19:01:02

Andrew
04.10.2018
19:01:28
methods.groupByTo(TreeMap(Comparator.comparingInt(ApiGroup::getOrder)), ApiGroup::getGroup), что ли.

Жабра
04.10.2018
19:05:06
На мутабельность пофиг, главное MutableList -> Set

Igor
04.10.2018
19:09:52

Andrew
04.10.2018
19:11:28

Mikhail
04.10.2018
19:11:46

Google

Жабра
04.10.2018
19:16:27

OlegKrikun
04.10.2018
19:16:51
Увадаемые, кто оседлал уже котлин дсл в грейделе, как сделать аналог вот такого подхода?
subprojects { subproject ->
afterEvaluate {
if (subproject.plugins.hasPlugin('com.android.library')) {
android {
...
}
dependencies {
...
}
}
}
}

Farid
04.10.2018
19:17:45
Привет всем. Извините за "наглость".
Кто может скинуть видео, где коротко объяснят про button в android studio
И видео где объяснят хттп запросы
Пост, гет

Beholder
04.10.2018
19:18:14

Andrew
04.10.2018
19:20:15

Igor
04.10.2018
19:20:53
а имплиситы в jvm как? :)
Я предполагаю - как дополнительный параметр в функцию, только опциональный.
Если его не задавать явно, то компилятор возьмет подходящее значение из текущего скоупа.

Andrew
04.10.2018
19:21:38

Beholder
04.10.2018
19:21:54
тут думаешь как бы в this не запутаться, а то ещё имплиситы...

Andrew
04.10.2018
19:22:16
Но без входных типов Api* трудно коллекциями вертеть)

Жабра
04.10.2018
19:25:11

Andrew
04.10.2018
19:32:30

OlegKrikun
04.10.2018
19:32:55
да, не понятно как применить конфигурацию к плагину

Andrew
04.10.2018
19:34:58
Там вместо android { ... } придётся делать configure<com.android.build.gradle.LibraryExtension> { ... }, ЕМНИП

Жабра
04.10.2018
19:35:00
Как переписать это на котлин?)
Enum[] enumConstants = (Enum[]) type.getEnumConstants();
Конвертируется вот так
val enumConstants = type.enumConstants as Array<Enum<*>>
Но говорит что есть ошибка
No type arguments expected for class Array

Quantum Harmonizer
04.10.2018
19:35:01

OlegKrikun
04.10.2018
19:36:36

Andrew
04.10.2018
19:36:43
Не получается такое
Я таки не могу в такое позднее время по обрывкам кода понять, что такое ApiGroup и как оно соотносится с остальным)

Google

Quantum Harmonizer
04.10.2018
19:36:58

Andrew
04.10.2018
19:37:02

Жабра
04.10.2018
19:37:03

Andrew
04.10.2018
19:37:36

OlegKrikun
04.10.2018
19:37:40

Жабра
04.10.2018
19:38:30

Quantum Harmonizer
04.10.2018
19:39:15

Andrew
04.10.2018
19:39:19
о_О а вот так кажется понимает
Как раз на котлинконфе сегодня рассказывал тип — когда речь идёт о NamedContainer, грувёвый DSL понимает, где вроде как идентификатор нужно превратить в getByName("idenifier"). Котлин не умеет вообще такие штуки с идентификаторами делать, но для его DSL добавили в контексте контейнера String.invoke(...) = getByName(this)(...)

OlegKrikun
04.10.2018
19:40:10
блин, но это же жесть =)

Andrew
04.10.2018
19:40:33
Дык в этом весь гредл, не?))))
На самом деле с переходом на Kotlin DSL гредл начинает чуть лучше доходить.

OlegKrikun
04.10.2018
19:40:58
не, это уже зашквар совсем =)

Andrew
04.10.2018
19:41:10
В грувёвом дсл ОЧЕНЬ много магии.

Quantum Harmonizer
04.10.2018
19:41:26
в этом весь груви)

OlegKrikun
04.10.2018
19:41:34

Жабра
04.10.2018
19:41:49

Andrew
04.10.2018
19:42:36
Хотя вон в @pofftop как раз бомбят по поводу Kotlin DSL и говорят, что груви был лаконичнее :D

Quantum Harmonizer
04.10.2018
19:44:13

Жабра
04.10.2018
19:44:42

Google

Quantum Harmonizer
04.10.2018
19:44:59
В смысле?
ну, чему аннотация не помогает? Какому коду?

Жабра
04.10.2018
19:46:16
ну, чему аннотация не помогает? Какому коду?
val enumConstants = type.enumConstants as Array<Enum<*>>
Поставил аннотацию в начало метода - ничего. Засунул прям к массиву (@Suppress("UPPER_BOUND_VIOLATED") Array<Enum<*>>) (ну а мало ли) - всё равно ничего

Quantum Harmonizer
04.10.2018
19:47:24
ну, не считая unchecked

Жабра
04.10.2018
19:48:49

Quantum Harmonizer
04.10.2018
19:49:12

Жабра
04.10.2018
19:50:00

Admin
ERROR: S client not available

Quantum Harmonizer
04.10.2018
19:51:48
вдруг есть какой-нибудт злостный class Array {}

Жабра
04.10.2018
19:53:01
вдруг есть какой-нибудт злостный class Array {}
package java.lang.reflect;
/**
* The {@code Array} class provides static methods to dynamically create and
* access Java arrays.
*
* <p>{@code Array} permits widening conversions to occur during a get or set
* operation, but throws an {@code IllegalArgumentException} if a narrowing
* conversion would occur.
*
* @author Nakul Saraiya
* @since 1.1
*/
public final class Array

Andrew
04.10.2018
19:53:19
Ой-ой-ой

Quantum Harmonizer
04.10.2018
19:53:27

Жабра
04.10.2018
19:55:50

Andrew
04.10.2018
19:56:37
Да никак, наверное, если ты от Class<*> пляшешь.

Жабра
04.10.2018
19:56:41
genericType: Type из рефлекта

Quantum Harmonizer
04.10.2018
19:56:44

Жабра
04.10.2018
19:57:10

Quantum Harmonizer
04.10.2018
19:57:52
А пример можно?)
import java.lang.reflect.Array as JArray || java.lang.reflect.Array.newInstance

Жабра
04.10.2018
19:59:09

Google

Denis
04.10.2018
20:05:30
Нужно для себя написать простое GUI-приложение под Android.
Что лучше выбрать -- Java или Kotlin?
Если разница вообще есть.
На Jave писал 3-4 раза в жизни.
Kotlin только читал.
На первый взгляд кажется, что Kotlin очень схож с Java и знание последней всё равно нужно, поэтому для примитивной задачи лучше взять Java и не парится.
Спасибо!

Andrew
04.10.2018
20:16:03
Бери, что ближе)

Denis
04.10.2018
20:17:55
Бери, что ближе)
Я один только "на картинках" видел)
И второй, как я писал, 3 раза в жизни использовал.
Мне никто из них не ближе)

Andrew
04.10.2018
20:19:08
Ну на реддите спрашивают что брать ктор или спринг, ответы схожи))

Andrew
04.10.2018
20:19:53
Всё просто: если стоит практическая задача написать приложение и забыть о ведре (и JVM) — бери то, на чём проще писать (вероятно, в твоём случае Java). Если хочется подучиться и время позволяет — бери технологии, которые будут актуальны в дальнейшем (Kotlin).

Denis
04.10.2018
20:20:17

Andrew
04.10.2018
20:21:16
В целом если и то, и то для тебя в новинку — вряд ли освоение Котлина сверху Джавы сильно тебя замедлит. БОльшая часть борьбы будет с ведровыми API, а не с языком.

Andrew
04.10.2018
20:22:20

Andrew
04.10.2018
20:23:21
Я о том, что всё равно придётся основные понятия джавки осваивать и сверху ещё накатывать "патчи" к ним для котлина.

Andrew
04.10.2018
20:24:56

Andrew
04.10.2018
20:26:41
Это да...но её понятия уже включены в котлин
Ну такое... Для того, чтобы понять, зачем нужны компаньоны и что такое object — полезно понимать, что такое static, чего в языке нету.
С другой стороны, должно быть достаточно опыта в C# / C++, если таковой имеется.

Andrew
04.10.2018
20:27:20

OlegKrikun
04.10.2018
20:29:39
@r4zzz4k В общем вот так получилось

Andrew
04.10.2018
20:30:34
?

Sergey
04.10.2018
20:32:51
круто)