
Andrey
25.09.2018
12:55:22
Если у нас для некоторого набора non null значений есть отношение порядка, то не понятно, как его расширить, чтобы оно null тоже включало. Это если математически про больше/меньше.

I
25.09.2018
12:57:41

Maxim
25.09.2018
12:58:52

Google

Vladimir
25.09.2018
12:59:07

Алексей
25.09.2018
13:00:56
А может кто-нибудь подсказать, есть ли аналог семафоров в котлиновских корутинах?

Vladimir
25.09.2018
13:00:57

I
25.09.2018
13:02:26
из доки: "Заметьте, что в явном сравнении с null для оптимизации нет смысла: a == null будет автоматически транслироваться в a === null"

Oleg
25.09.2018
13:05:29
Добрый день! Помогите разобраться, пожалуйста, со следующим кодом. https://pastebin.com/VcG3SnQF
Дело в том, что условия на строках 6 и 9 скомпилируются, а условие на 12 строке нет. Почему на 9 строке компилируется, а на 12 нет?

balolam
25.09.2018
13:07:02
У вас в IDE будет детально написано

Andrey
25.09.2018
13:09:08
Так что всё логично.

Vladimir
25.09.2018
13:09:52
Добрый день! Помогите разобраться, пожалуйста, со следующим кодом. https://pastebin.com/VcG3SnQF
Дело в том, что условия на строках 6 и 9 скомпилируются, а условие на 12 строке нет. Почему на 9 строке компилируется, а на 12 нет?
В youtrack хватает тикетов на подобные случаи, может, это один из них.
Возможно, в 1.3 поведение будет ближе к ожидаемому (ничего не должно компилиться, компилятор вполне мог бы догадаться, что везде false).

Andrey
25.09.2018
13:23:32
Там написано, что всё со всем должно сравниваться на равенство.

Алексей
25.09.2018
13:25:16

Google

Oleg
25.09.2018
13:26:11

Andrey
25.09.2018
13:39:28
Зачем так - хз. Надо у создателей языка спрашивать.
Почему это не задокументировано в Javadoc к Any.equals - тоже хз.

Konstantine
25.09.2018
13:43:45
Странно. Жил с полной уверенностью, что у наллабл коллекций есть всякие методы аля isNullOrEmpty на манер строк. :(

Oleg
25.09.2018
13:43:59

Vladimir
25.09.2018
13:55:46

Алексей
25.09.2018
13:57:27
Куда/к кому можно обратиться за кодревью одного класса?

Vladimir
25.09.2018
13:57:37

Anton
25.09.2018
13:57:37
Кидай))

Алексей
25.09.2018
13:57:37
Котлиновского

Anton
25.09.2018
13:57:45
На гист

Алексей
25.09.2018
13:57:58
https://gist.github.com/InsanusMokrassar/0720b26e2df7584e1121ba9df7aff7b9

Vladimir
25.09.2018
14:00:24

Andrey
25.09.2018
14:00:32
То, что сейчас творится с проифыванием в компиляторе - костыли поверх наследия, пришедшего из Java Object

Vladimir
25.09.2018
14:01:58

Andrey
25.09.2018
14:04:02

Maxim
25.09.2018
14:05:28

Andrey
25.09.2018
14:06:07

Google

Vladimir
25.09.2018
14:07:04
Кстати, приведённый пример в 1.3-RC работает так же, как раньше ?♂️
Ну, в другой раз

Maxim
25.09.2018
14:07:26

Andrew
25.09.2018
14:09:21

Vladimir
25.09.2018
14:09:30

Maxim
25.09.2018
14:11:33

Andrew
25.09.2018
14:11:50

Andrey
25.09.2018
14:12:26

Mikhail
25.09.2018
14:12:44

Алексей
25.09.2018
14:13:31
@antonkazakov вы не смотрели гист?

Mikhail
25.09.2018
14:14:01

Vladimir
25.09.2018
14:14:28
Было бы что-нибудь такое:
Java: List<String>
Kotlin: (Mutable)List<String!|Eq!>!|Eq!

Andrey
25.09.2018
14:14:54

Vladimir
25.09.2018
14:15:02

Mikhail
25.09.2018
14:15:10
мы ведь про интероп говорим

Maxim
25.09.2018
14:15:31

Andrew
25.09.2018
14:15:50

Vladimir
25.09.2018
14:17:06
Выглядит мило и очевидно, особенно для языка, где нету ни типов-сумм, ни структурного полиморфизма (я понимаю, что речь исключительно о границе на интеропе, но всё же).
Напомните, пожалуйста, какой профит?
Невозможность вызвать equals/hashCode там, где он не имеет смысла.
Но, видимо, это не такая горячая проблема в Java, чтобы так заморачиваться.

Andrey
25.09.2018
14:17:21
Примерно интерфейс должен быть таким:
interface Equals<T> {
fun eq(other: T): Boolean
fun hc(): Int
}
Вот где брать T для Java объектов - загадка.

Vladimir
25.09.2018
14:20:22

Google

Руслан
25.09.2018
14:20:37

Sergey
25.09.2018
14:21:11

Andrey
25.09.2018
14:22:06
В Java это Any?
По факту - да, но тогда для всех Java объектов мы теряем type safety, декларированное интерфейсом. Опять всё со всем можно сравнивать, а тогда зачем нам интерфейс?

Maxim
25.09.2018
14:23:01

Vladimir
25.09.2018
14:23:09

Admin
ERROR: S client not available

Andrey
25.09.2018
14:24:24
Потому и нет интерфейса, вместе него type safety для ==, прибитый костылями в компиляторе, там где получилось (для final классов)

Алексей
25.09.2018
14:25:43
Была подобная мысль, но я пока что немного плаваю в терминологии и понимании того, как корутины на самом деле устроены

Andrew
25.09.2018
14:26:46

Aleksandr
25.09.2018
14:29:17
парни подскажите, никак не могу понять, как вот это
val mySharedViewModel : MySharedViewModel by sharedViewModel()
записать на джаве?

Vladimir
25.09.2018
14:29:22

Andrew
25.09.2018
14:30:02

Aleksandr
25.09.2018
14:30:45
kotlin.Lazy<T>
это koin

Vladimir
25.09.2018
14:31:50

Andrew
25.09.2018
14:32:47
kotlin.Lazy<T>
Ну тогда
private MySharedViewModel _mySharedViewModel = null;
public MySharedViewModel getMySharedViewModel() {
if(_mySharedViewModel == null) {
_mySharedViewModel = sharedViewModel();
}
return _mySharedViewModel;
}
(это топорный и не потокобезопасный вариант)

Руслан
25.09.2018
14:33:21

Andrew
25.09.2018
14:34:26

Google

Andrew
25.09.2018
14:35:01
Как будто в котлине такой же код нельзя написать.

Vladimir
25.09.2018
14:36:52

Alexander
25.09.2018
17:09:14
Здраствуйте, товарищи. Хочу заставить компилятор Kotlin (или IntelliJ) ругать меня за то, что я бросаю исключение, которое не указано в аннотации @Throws либо не ловлю исключение, которое бросает тот или иной метод. Короче говоря, хочу как в Java: получать по рукам за проверяемые исключения, которые не обрабатываются. Был ли у кого-то такой опыт? Я погуглил, внимательно посмотрел настройки Inspections в IntelliJ, но ничего не нашел.
Sealed-классы не совсем подходят, потому что я хочу обрабатывать 100500 исключений исключительно внизу try, в одном месте

Quantum Harmonizer
25.09.2018
17:13:49

Руслан
25.09.2018
17:19:38

Alexander
25.09.2018
17:24:40

Alexander
25.09.2018
17:40:52
Таки релизнули: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html и http://jdk.java.net/11

Igor
25.09.2018
17:42:02
Что, обновили лицензию (теперь все платно) ? укатываемся openjdk от redhat/azule

Alexander
25.09.2018
17:43:15
Чего-то я не вижу, чтобы все было платно. Платная вроде только поддержка старых версий
Да, так и есть
Страдает только кровавый ынтырпрайз

Mikhail
25.09.2018
17:44:18

Igor
25.09.2018
17:47:27
Да, так и есть
Ну с oracle jdk большие проблемы с установкой, а в openjdk вроде не будет long-support вообще (только полу-годовые релизы).

Alexander
25.09.2018
17:48:33