Size: a a a

Programming Offtop

2020 October 28

BP

Bogdan Panchenko in Programming Offtop
Короче хочется немного типизировать динамическую природу
источник

с#

саша сок #KotlinGang... in Programming Offtop
Bogdan Panchenko
Короче хочется немного типизировать динамическую природу
polymorphic посмотрите. оно сериализует не ktype, а "type": "com.package.app.Clazz"
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
А чего потом с ними делать? Просто как строковые идентификаторы использовать?
Ну в программе мне нужны типы, и бд у меня релеционка, я могу просто стринг там хранить и в коде сам парсить, но хотелось немного безопасности
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Ну в программе мне нужны типы, и бд у меня релеционка, я могу просто стринг там хранить и в коде сам парсить, но хотелось немного безопасности
Просто KType практически невозможно использовать в рантайме. Если нужен просто идентификатор, то просто делайте из него toString и сравнивайте по нему.
источник

AN

Alexander Nozik in Programming Offtop
Если нужен рантайм объект, то надо использовать KClass. Для него есть forName
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Просто KType практически невозможно использовать в рантайме. Если нужен просто идентификатор, то просто делайте из него toString и сравнивайте по нему.
Наоборот, он для рантайма и нужен, что бы дженерики доставать
источник

с#

саша сок #KotlinGang... in Programming Offtop
Alexander Nozik
Просто KType практически невозможно использовать в рантайме. Если нужен просто идентификатор, то просто делайте из него toString и сравнивайте по нему.
так я ж говорю, polymorphic из KType с этим хорошо справляется
источник

с#

саша сок #KotlinGang... in Programming Offtop
Bogdan Panchenko
Наоборот, он для рантайма и нужен, что бы дженерики доставать
а вот с дженериками беда, но если они тоже будут polymorphic, то он и их сериализует
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Просто KType практически невозможно использовать в рантайме. Если нужен просто идентификатор, то просто делайте из него toString и сравнивайте по нему.
Ну я так и думал, но мало ли, может был способ получше
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Если нужен рантайм объект, то надо использовать KClass. Для него есть forName
Нету же, ток для джавового
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Нету же, ток для джавового
Ну да. Но только для него рефлексия в таком виде и есть
источник

KD

Konstantin Dovnar in Programming Offtop
Где можно почитать о типах плагиновых для IDEA?

Задача: нужно генерировать что-то дополнительное вокруг и внутри класса по alt-enter.
Т.е., помещаешь курсор на имя класса, клацаешь alt-enter и там в менюшке некое "Generate some shit for that class", которое сгенерируется прямо в этом классе и в этом файле.

В каком направлении копать?

Гуглёж позволил понять, что эти действия называются Content Actions, но дальнейший гуглёж подсказал, что экшены в плагинах это нечто более глобальное.

Может у кого есть готовый пример?
источник

AN

Alexander Nozik in Programming Offtop
В принципе рекомендация @y9san9 посмотреть, чего та унутре сериализации годная. Они как-то тип по строке восстанавливают
источник

AN

Alexander Nozik in Programming Offtop
Konstantin Dovnar
Где можно почитать о типах плагиновых для IDEA?

Задача: нужно генерировать что-то дополнительное вокруг и внутри класса по alt-enter.
Т.е., помещаешь курсор на имя класса, клацаешь alt-enter и там в менюшке некое "Generate some shit for that class", которое сгенерируется прямо в этом классе и в этом файле.

В каком направлении копать?

Гуглёж позволил понять, что эти действия называются Content Actions, но дальнейший гуглёж подсказал, что экшены в плагинах это нечто более глобальное.

Может у кого есть готовый пример?
Что-нибудь в этом роде: https://youtu.be/j2tvi4GbOr4?
источник

ML

Mikhail Levchenko in Programming Offtop
Konstantin Dovnar
Где можно почитать о типах плагиновых для IDEA?

Задача: нужно генерировать что-то дополнительное вокруг и внутри класса по alt-enter.
Т.е., помещаешь курсор на имя класса, клацаешь alt-enter и там в менюшке некое "Generate some shit for that class", которое сгенерируется прямо в этом классе и в этом файле.

В каком направлении копать?

Гуглёж позволил понять, что эти действия называются Content Actions, но дальнейший гуглёж подсказал, что экшены в плагинах это нечто более глобальное.

Может у кого есть готовый пример?
источник

ML

Mikhail Levchenko in Programming Offtop
вот тут как раз пример плагина, который работает по alt-enter
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Нету же, ток для джавового
Я посмотрел, как в сериализации. Там используются строки и дальше просто по таблице резолвится сериализатор. Как я и предполагал.
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Я посмотрел, как в сериализации. Там используются строки и дальше просто по таблице резолвится сериализатор. Как я и предполагал.
Я уже глянул. Спасибо. Ну динамика так динамика
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Я уже глянул. Спасибо. Ну динамика так динамика
Ну любая рефлексия - это динамика. Чтобы делать безопасно, можно делать как в сериализации. Заранее делать таблицу типов и в ней искать нужное. У вас же конечное количество возможных типов
источник

AN

Alexander Nozik in Programming Offtop
Более того, если вдруг использовать Kotlinx serialization, то там уже эта таблица есть в  seralizerModule
источник