
Igor
06.10.2018
12:06:33

Vladimir
06.10.2018
12:06:56

Quantum Harmonizer
06.10.2018
12:07:42
List<String>[] ?

Boris
06.10.2018
12:07:48

Google

Quantum Harmonizer
06.10.2018
12:08:34
Да, это объясняет. Массив заданного типа можно создать только когда компилятор знает его точный тип, потому что JVM не просто не поддерживает дженерик-типы у массивов, она про них вообще не знает.
Если List<A> и List<B> - это одно и то же в байт-коде, то Array<A> и Array<B> - нет, для массивов тип элементов имеет значение.
Котлин мог бы прикинуться, что такой особенности нет, и вместо Array<A> использовать Object[], но пострадала бы совместимость.
> Котлин мог бы прикинуться, что такой особенности нет, и вместо Array<A> использовать Object[]
Порой и правда очень хочется, чтобы он так делал.

Boris
06.10.2018
12:08:41

Vladimir
06.10.2018
12:09:10

Quantum Harmonizer
06.10.2018
12:09:19

Boris
06.10.2018
12:09:51
это вроде и есть стирание
нет, стирание только у дженериков, а массивы не параметризируются, они всегда имеют заранее определенный тип

Quantum Harmonizer
06.10.2018
12:10:28
я тут ворвался, почитаю-ка тред всё-таки

Boris
06.10.2018
12:10:39

Vladimir
06.10.2018
12:10:40

Boris
06.10.2018
12:11:02
ну да, только вот ничего там не стирается

Vladimir
06.10.2018
12:11:28

Boris
06.10.2018
12:11:58
> Котлин мог бы прикинуться, что такой особенности нет, и вместо Array<A> использовать Object[]
я почему-то был уверен, что котлин так и делает.. и мне даже казалось, что я это исопльзовал, но наверное это меня плющит

Google

Nameless
06.10.2018
12:14:26
что за .fun?

Boris
06.10.2018
12:14:40
смысл моего сообщения был в том, что параметризировать массив не выйдет, он всегда требует предопределенного типа и эта особенность перекочевала в котлин-нейтив несмотря ни на то, что там этой необходимости нет

Алексей
06.10.2018
12:14:43
@themishkun вопрос по тому же алгоритму. По идее, он идеально распараллеливается - запускать корутины на каждую sort операцию внутри и ждать. Но почему-то не получается быстрее - наоборот, получается уменьшение производительности

Nameless
06.10.2018
12:14:44
кто может разжевать?

Vladimir
06.10.2018
12:14:58
тип, да, только он не стирается ? и это котлин
Ну вот. Если тип уже стёрт, т.е. в метод прилетел какой-то Array<T>, а что такое T уже не узнать, массив создать нельзя, т.к. для создания массива нужно знать его точный тип, либо это на деле будет Array<Any>, а не Array<T>.

Алексей
06.10.2018
12:15:01

Nameless
06.10.2018
12:15:21
val whatAmi: Unit = { -> }.fun Function<*>.(){}()
пофиксил

Жабра
06.10.2018
12:15:27
Какая диичь, какаая дииичь

Nameless
06.10.2018
12:15:40
как эта дичь работает?

Quantum Harmonizer
06.10.2018
12:15:44

Vladimir
06.10.2018
12:15:52

Nameless
06.10.2018
12:16:03
а так норм

Жабра
06.10.2018
12:16:32
А что ты вообще хочешь сделать?

Алексей
06.10.2018
12:16:37
А что нужно-то?

Boris
06.10.2018
12:16:43

Nameless
06.10.2018
12:17:09
А что нужно-то?
понять как это работает
это из паззлеров кекса, и он не успел его разжевать оставил на домашку

Алексей
06.10.2018
12:17:24
вот оно как

Google

Boris
06.10.2018
12:17:48

Azure
06.10.2018
12:17:51
http://openjdk.java.net/jeps/325 че пацаны, котлин?)

Vladimir
06.10.2018
12:17:58

Nameless
06.10.2018
12:18:21

Жабра
06.10.2018
12:18:22

Quantum Harmonizer
06.10.2018
12:18:28
Догадки. fun Function<*>.() {} — анонимная extension-функция.
{ -> }.анонимка() — вызов анонимной функции

Boris
06.10.2018
12:19:06

Quantum Harmonizer
06.10.2018
12:19:20

Vladimir
06.10.2018
12:19:43

Алексей
06.10.2018
12:19:43
Вызов метода, в который как this принимается Function<*> (который не используется). брррр....

Quantum Harmonizer
06.10.2018
12:20:56

Vladimir
06.10.2018
12:21:26

Boris
06.10.2018
12:21:41

Alexander
06.10.2018
12:44:02

Nameless
06.10.2018
12:44:27
Не получится
Если конечно на обратную совместимость не забьют

Bogdan
06.10.2018
12:45:39

Alexander
06.10.2018
12:45:42
Ну пока это просто копия удачного синтаксиса котлин. Теми темпами, которыми джавовские jep-ы вводятся, мы не дождемся

Bogdan
06.10.2018
12:47:14

Google

Alexander
06.10.2018
12:50:15
Вообще нет
Я уже писал, меня больше интересует Valhalla и Panama. Может быть loom, но до него точно не доживу
Я на котлин довольно плотно пересел.

Alex
06.10.2018
12:53:18

Bogdan
06.10.2018
12:53:26

Alexander
06.10.2018
12:53:35
а
Там скорее вопрос в том, синтаксис целиком из котолин взят

Алексей
06.10.2018
13:01:03
А почему в main runBlocking может не разблокироваться?

Admin
ERROR: S client not available

Azure
06.10.2018
13:06:15

Alexander
06.10.2018
13:08:04

Алексей
06.10.2018
13:08:22
ясненько
ну я решил с помощью Runtime.runtime.exit(0)
благо, в данном случае некритично

Alexander
06.10.2018
13:10:34
Это как правило весьма плохое решение. Где-то что-то в бесконечный цикл уходит
Когда на тредах, это бывает просто тред или экзекутор весит и ждет, пока его закроют, но на корутинах такого быть не должно

Алексей
06.10.2018
13:11:25
ну там такая ситуация, что всё, что нужно, точно отрабатывает

Alexander
06.10.2018
13:12:01
Все равно плохо. Форсированный выход может чего-то ломать. Лучше, руками закрыть головной джоб.

Алексей
06.10.2018
13:14:27
опять же, а какие варианты? как закрывать этот job руками? В какой момент?

Google

Алексей
06.10.2018
13:15:02
только если java синхронизацию делать

Alexander
06.10.2018
13:15:16
А что там Thread.sleep делает??!!
Вот из-за него все и подвисает

Алексей
06.10.2018
13:15:36

Alexander
06.10.2018
13:15:49
а

Алексей
06.10.2018
13:15:53

Alexander
06.10.2018
13:15:54
я уж испужался

Жабра
06.10.2018
13:16:03

Alexander
06.10.2018
13:16:36
Но с ним приложение никогда не будет нормально завершаться

Алексей
06.10.2018
13:16:47

Alexander
06.10.2018
13:16:53
Более того, один тред будет навечно блокирован

Алексей
06.10.2018
13:17:20

Alexander
06.10.2018
13:17:23
А где цикл-то?

Алексей
06.10.2018
13:17:24
я правда не знаю

Alexander
06.10.2018
13:17:45
условие останова где?

Алексей
06.10.2018
13:18:07
внутри она вызывает себя в launch, окончания которого дожидается
секунду
блин, там много кода

Alexander
06.10.2018
13:18:34
ладно, не надо

Алексей
06.10.2018
13:18:57