Size: a a a

Kotlin Community

2020 February 10

КР

Кирилл Романенко in Kotlin Community
Подскажите плз, запамятовал: есть класс class Foo : Bar(), где Bar требует в конструктор требует некоторый сложный объект, который Foo и будет собирать, а после должен передать. Как это красивее всего решить?
источник

(

( in Kotlin Community
Кирилл Романенко
Подскажите плз, запамятовал: есть класс class Foo : Bar(), где Bar требует в конструктор требует некоторый сложный объект, который Foo и будет собирать, а после должен передать. Как это красивее всего решить?
fun Foo(): Bar?
источник

КР

Кирилл Романенко in Kotlin Community
(
fun Foo(): Bar?
Ноу. Надо собрать объект, а потом вызвать конструктор родительского класса.
источник

QH

Quantum Harmonizer in Kotlin Community
Кирилл Романенко
Ноу. Надо собрать объект, а потом вызвать конструктор родительского класса.
class Foo : Bar(buildComplicatedObject())
источник

КР

Кирилл Романенко in Kotlin Community
Quantum Harmonizer
class Foo : Bar(buildComplicatedObject())
Хм, да, красивое решение, спасибо.)
источник

VP

Vladimir Petrakovich in Kotlin Community
Первый раз открыл REPL и сразу такой вопрос: как указать JVM target? У меня в проекте везде стоит 11, но там внезапно 1.6:
error: cannot inline bytecode built with JVM target 11 into bytecode that is being built with JVM target 1.6
источник

AN

Alexander Nozik in Kotlin Community
Кирилл Романенко
Хм, да, красивое решение, спасибо.)
Лучше фактори метод. Сложная логика в конструкторе - не хорошо
источник

I

Ilmir in Kotlin Community
Quantum Harmonizer
Товарищи, есть ли уже best practice по созданию коллекций инлайн-классов?
Не создавать их.
источник

AN

Alexander Nozik in Kotlin Community
Ilmir
Не создавать их.
сообразили на троих
источник

AN

Alexander Nozik in Kotlin Community
Кто знает, на что Бреслва хочет заменить компаньен и чего ему там не нравится?
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Кто знает, на что Бреслва хочет заменить компаньен и чего ему там не нравится?
А кто говорит о замене?
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
А кто говорит о замене?
Вот только что в подлодке послушал
источник

КР

Кирилл Романенко in Kotlin Community
Alexander Nozik
Кто знает, на что Бреслва хочет заменить компаньен и чего ему там не нравится?
Да вроде не собирается заменять, ему просто эта штука не нравится, но он живёт с этой болью.
источник

AN

Alexander Nozik in Kotlin Community
Он давно матерился на компаньены, но я так и не понял, что там плохо, и что он хочет
источник

I

Ilmir in Kotlin Community
Alexander Nozik
Кто знает, на что Бреслва хочет заменить компаньен и чего ему там не нравится?
На что он хочет заменить companion я не знаю, а одна из проблем companion'ов - это скоупинг. Companion по умолчанию входит в скоуп класса, поэтому, если он наследует какой-нибудь интерфейс, это ведет к неочевидному резолву.
источник

BP

Bogdan Panchenko in Kotlin Community
Ilmir
На что он хочет заменить companion я не знаю, а одна из проблем companion'ов - это скоупинг. Companion по умолчанию входит в скоуп класса, поэтому, если он наследует какой-нибудь интерфейс, это ведет к неочевидному резолву.
Ну это иногда помогает, хотя потом разбираться в таком коде не хочется
источник

AN

Alexander Nozik in Kotlin Community
Ilmir
На что он хочет заменить companion я не знаю, а одна из проблем companion'ов - это скоупинг. Companion по умолчанию входит в скоуп класса, поэтому, если он наследует какой-нибудь интерфейс, это ведет к неочевидному резолву.
Ну с другой стороны, компаньен, наследующий интерфейс - это супер фича
источник

AN

Alexander Nozik in Kotlin Community
Что именно хочется убрать?
источник

AN

Alexander Nozik in Kotlin Community
Я бы сказал, что в компаньене не хватает только нотракта на конструктор класса
источник

KZ

Konstantin Zolotov in Kotlin Community
Вот ktor, кстати, такое эксплуатирует в install(Feature). И правда выглядит как какя-то магия.
источник