Описание тега kotlin-inline-class
Начиная с версии 1.3+, Kotlin представляет особый вид класса, называемый встроенным классом, который объявляется путем размещения модификатора inline перед именем класса. Они предоставляют способ обернуть тип, тем самым добавляя функциональность и создавая сам по себе новый тип. В отличие от обычных оберток, они получат более высокую производительность. Это происходит потому, что данные встроены в их использование, а создание экземпляра объекта пропускается в скомпилированном коде.
2
ответа
Методы Kotlin, принимающие встроенные классы в качестве параметров - как доступ из Java?
Допустим, у меня есть: inline class Email(value: String) а также fun something(email: Email) сейчас, если я хочу позвонить something() с Java не могу. Потому что любой метод, который принимает встроенный класс в качестве параметра, является "искажен…
17 янв '19 в 15:51
1
ответ
Интегрированный класс Kotlin в тестах JUnit
Я пытаюсь понять концепцию встроенных классов - они являются простой оберткой объекта с одним свойством, которое встроено во время выполнения. Это означает, что фактическая инициализация класса не происходит во время выполнения Я пытался написать пр…
25 май '19 в 21:22
0
ответов
Есть ли способ реализовать Cleaner с помощью других примитивов, кроме упаковки их в классы?
Итак, у нас есть оболочка kotlin вокруг vulkan, которая использует встроенные классы для идентификаторов vulkan (которые обычно Longs) Насколько я получил, Java (9+) Cleaner Предполагается работать только с классами. Вот пример Я пытался изменить эт…
24 апр '19 в 15:09
2
ответа
Сохранение встроенного класса Kotlin в MongoDB с данными Spring
Я пытаюсь сохранить встроенный класс Kotlin (v1.3.61) в MongoDB, используя Spring Data MongoDB (2.2.3-RELEASE), но пока безуспешно. Это настройка: inline class UserId(@NotBlank val id: String) а также @Document(collection = "data") class Data( @Fiel…
21 янв '20 в 22:52
1
ответ
Можно ли сделать безопасную встроенную опцию в Котлине?
В Котлине иногда приходится работать с двойным допуском к нулю. Например, мне нужна двойная допустимость значения NULL, когда я хочу использоватьT? где Tможет быть типом, допускающим значение NULL. Для этого есть несколько подходов: Holder<T>?…
06 окт '19 в 14:15
1
ответ
Утечка памяти: анонимный класс, реализующий io.reactivex.Observer
Я работаю над Android-проектом. Некоторые из моих мероприятий расширяютсяSiteFinderActivity. Этот класс отвечает за проверку текущего сеанса и передачу его своим потомкам с помощью нескольких абстрактных функций. Я использую RxRelay JakeWharton, что…
13 мар '20 в 22:15
1
ответ
Встроенный класс Kotlin, который реализует интерфейс под капотом
В версии 1.3.0 kotlin для разработчиков стали доступны встроенные классы. "Нормальные" встроенные классы обещают не быть реальными объектами во время выполнения, а существуют только во время компиляции для проверки типов. Так например inline class M…
17 дек '19 в 03:38
3
ответа
Встроенный класс Kotlin для свойств с аннотацией @Id
В моей бизнес-логике мне приходится иметь дело с множеством идентификаторов сущностей, все из которых имеют тип String, что может вызвать путаницу, особенно когда вы передаете пару из них в качестве параметров метода. Поэтому я подумал о том, чтобы …
03 янв '20 в 18:50
1
ответ
Неразрешенная ссылка: JvmInline На детской площадке Котлина
Это точный фрагмент кода классов значений, взятый с официального сайта kotlin . interface I @JvmInline value class Foo(val i: Int) : I fun asInline(f: Foo) {} fun <T> asGeneric(x: T) {} fun asInterface(i: I) {} fun asNullable(i: Foo?) {} fun &…
07 фев '21 в 09:12
0
ответов
Классы значений в дженериках - взаимодействие с Java/Groovy
Я борюсь с классами значений в обобщениях и совместимостью с Java или Groovy. Классы значений встроены: Встроенные классы | Котлин 1, кроме дженериков. Учитывая следующий класс значений и интерфейс (Kotlin): @JvmInline value class ValueClass(val id:…
22 окт '21 в 11:40
2
ответа
Класс Parcelize Value (встроенный) в Котлине
На первый взгляд кажется нормальным украсить класс значений котлина (встроенный) следующим образом: @JvmInline @Parcelize value class TestClass(val value: Long) : Parcelable Но сборка не сообщает: ошибка: неожиданный тип общедоступный статический ок…
15 ноя '21 в 19:59
1
ответ
Kotlin: встроенная функция и общий тип
Я хочу вызвать несколько вызовов API одновременно, используя сопрограммы. До сих пор я использовал сопрограммы только для вызова одного вызова API, который возвращал результат в форме успеха или ошибки. Его использование встроенной функции. Но мне н…
26 окт '22 в 08:46
2
ответа
Невозможно использовать «T» в качестве параметра овеществленного типа, даже если я объявил, что T должен быть любым классом, унаследованным Parcelable
Поскольку я еще не силен в дженериках, я хотел бы спросить: Вопрос: почему я не могу сообщить функцииgetResultчто возвращаемое значение изbundle.getParcelableCompat<T>(BUNDLE_KEY)было бы типаT(какой класс наследует Parcelable)? Я получаю сообщ…
27 окт '22 в 07:55
0
ответов
Можно ли отключить встраивание классов значений в Kotlin?
Цель Я хотел бы глобально отключить встраивание@JvmInline value classклассы через флаг компилятора или что-то подобное. Я хотел бы сделать это при запуске модульных тестов, но не в производстве. Мотивация Я хотел бы использовать mockk с классами зна…
07 окт '22 в 21:21
0
ответов
Kotlin работает с классами значений в библиотеках типа hibernate/jackson
Есть ли способ заставить классы значений kotlin (обновленные встроенные классы) работать с такими библиотеками, как Jackson и Hibernate, и заставить их рассматривать класс значений просто как базовый тип? В настоящее время я получаю кучу ошибок, гов…
14 фев '23 в 13:05
0
ответов
Как использовать классы значений kotlin с MyBatis
Может ли кто-нибудь дать рекомендации по использованию встроенного класса kotlin () с MyBatis. У меня есть этот код: Картограф MyBatis: @Mapper interface EntityMapper { fun findEntitiesByStatuses(startId: Long, fetchLimit: FetchLimit, statuses: List…
29 июн '22 в 12:36
1
ответ
Каков наилучший вариант использования для понимания Crossinline?
Я хотел понять, каков фактический вариант использования, когда мы хотим добавитьключевое слово для лямбды У меня есть следующий код, в котором я добавил crossinline. Я понимаю, что crossinline заставит любой вызывающий метод заставить его выполнять …
16 мар '23 в 18:59
1
ответ
Принудительное встраивание встроенного класса Kotlin?
@LukasEder, этот вопрос больше связан с Котлином, вы, вероятно, можете пропустить его в пользу продолжения, более связанного с jOOQ, в https://github.com/jOOQ/jOOQ/issues/14972 :) Таким образом, часть устаревшей базы данных имеет довольно сложную ко…
20 апр '23 в 16:39
1
ответ
Как использовать класс значений Kotlin из Java-кода?
У меня есть класс значений Kotlin: @JvmInline value class MyValueClass internal constructor(val rawValue: String) { companion object { @JvmName("myTestValueClass") fun String.testValueClass(): MyValueClass { return MyValueClass( rawValue = "test", )…
01 дек '23 в 06:43
0
ответов
Котлин. Как сохранить свойство в классе значений?
Я пытаюсь создать класс стоимости для хранения денег. И мне нужно хранить формат частных денег. Вот мой код: @JvmInline value class Money internal constructor(val rawValue: String) { private val format: MoneyFormat = MoneyFormat.WHOLE И я получаю ош…
17 сен '23 в 12:58