Articles of перечислений

Правило Kotlin Proguard для перечисления?

Привет, кто-нибудь, пожалуйста, сообщите мне, есть ли какие-либо особые правила, необходимые для класса Kotlin с перечислением? Простой пример: data class Passenger( var type: Type?, var id: Int, var age: Int ) { companion object { const val AGE_NOT_SET = -1 } enum class Type { ADULT, CHILD, INFANT } constructor() : this(null, 0, 0) } […]

Kotlin – присвоить значение переменной enum переменной без значения.

Как это выглядит сейчас: class Trial { companion object{ @JvmStatic fun main(args: Array<String>){ val message = Message.ALREADY_REGISTERED.value println(message); } } } enum class Message constructor(val value: String){ ALREADY_REGISTERED("You've already been registered") } Эти выходы: You've already been registered . Но мне было интересно, есть ли способ просто назначить val message = Message.ALREADY_REGISTERED и сразу же […]

Функция расширения в перечислителе, `values ​​()` недоступна?

Если я попытаюсь ввести: enum class EGraphicsAPIConvention(@get:JvmName("i") val i: Int) { API_DirectX(0), API_OpenGL(1) } fun EGraphicsAPIConvention.of(i: Int) = values().first { it.i == i } Компилятор жалуется: неразрешенные ссылочные значения this.values() не помогает ни Почему у меня нет values() ?

Kotlin – Использование Enums для извлечения Char

Будучи немного новым для концепций ООП, перечисления в Котлине немного сбивают меня с толку. Моя интерпретация пещерного человека заключается в том, что перечисления используются для хранения неизменяемых переменных. Я делаю простое приложение Tic-Tac-Toe и просто хочу хранить значения «X», «Y» и «-» все как Chars. Где мое замешательство? Есть ли лучший способ получить определенный набор […]

Как я могу получить перечисление Kotlin одинакового поведения как cpp

Я хотел бы получить то же поведение, что и cpp: enum dxgi_format_gli { DXGI_FORMAT_R64_UINT_GLI = 1, DXGI_FORMAT_R64_SINT_GLI } где DXGI_FORMAT_R64_UINT_GLI получает 1, а следующий получает 2 самое близкое, что я получил: private var counter: Int = 2; enum class dxgi_format_gli(i: Int = counter++) { DXGI_FORMAT_R64_UINT_GLI(1), DXGI_FORMAT_R64_SINT_GLI() } Тем не менее, мне бы хотелось, чтобы он […]

Как написать преобразование многократного использования для значения String to Enum в группе классов Enum? (Котлин)

У меня есть группа> 5 классов Enum, которые принимают значения String в своих значениях, и я хочу иметь простой код для всех этих классов Enum для преобразования из поля String в объекте JSON. enum class Religiousness(val jsonStr: String, val resID: Int) { NotAtAll("none", R.string.not_religious), Somewhat("somewhat", R.string.somewhat_religious), Very("very", R.string.very_religious), ; override fun toString() = jsonStr fun […]

как преобразовать в NotNull с помощью перечисления в Котлин

Как преобразовать следующий код в принятый NotNull внутри класса enum , используя Kotlin ? Примечание: я использую это перечисление между двумя действиями, а одно действие имеет 2 адаптера. Здесь перечислены классы enum enum class Adapterx { ADAPTER_1, ADAPTER_2; companion object { fun fromOrdinal(ordinal: Int): Adapterx? { return Adapterx.values().firstOrNull { it.ordinal == ordinal } } } […]

Расширение Котлина для следующего значения Enum без отражения

Я написал расширение Kotlin, которое добавляет next() для значений enum. Но есть ли лучший способ сделать это? fun <T : Enum<*>> T.next(): T { val values = this::class.java.getEnumConstants() return if (this.ordinal < values.size – 1) values[this.ordinal + 1] else values[0] } enum class Color {Red, Yellow, Green} Color.Red.next() //Yellow Могу ли я достичь этого без […]

Эквивалент эквивалента C ++ в Котлине

Проблема, которую я пытаюсь решить: У меня есть список элементов. Список может быть большим, и их может быть много. Я хотел бы получить к ним доступ по индексу. Для этих индексов я хотел бы использовать слова вместо чисел. Мне также хотелось бы, чтобы эти слова были строго типизированы, поэтому я не могу смешивать числа с […]

Enums и With в Котлине

Либо мой синтаксис неверен, либо вы не можете использовать для применения к константам enum . IntelliJ говорит, что это потому, что у RegexOption нет объекта-компаньона и что RegexOption needs to be initialized here . Я не думал, что вы можете создать экземпляр переименования. // this works: val RX_OPTIONS = mapOf( 'c' to RegexOption.COMMENTS, 'd' to […]