Tag: 枚举

在Kotlin中枚举注释

我有一个由Gson序列化/反序列化的枚举: enum class PacketType { NONE; [SerializedName(“request”)] REQUEST; [SerializedName(“response”)] RESPONSE; [SerializedName(“event”)] EVENT; } 不幸的是,我注意到Gson忽略了SerializedName注解,并使用枚举值的大写名称。 我决定找出为什么序列化不能按预期工作,并发现Kotlin删除枚举值的所有注释。 我怎样才能使这些注释出现在生成的字节码?

在从文件中读取数据行之前,枚举有多复杂(例如.csv)?

我已经创建了一个平台游戏的一部分,我有一个演员类,表示对象和角色的实例,以及一个types枚举,它表示每个演员将有什么数据(如速度,攻击,防御等)。 使用硬编码的枚举定义来指定每种types的所有数据似乎有点繁琐。 例如 PLANE(“Plane”, 10, 10, 2, 0), MISSILE(“Missile”, 1, 0, 0, 4); 最好是指定一个文件中的数据,然后读取它?

通过枚举类属性Kotlin进行过滤

如何过滤kotlin中的枚举类? (只是学习)在下面的代码中,文件前面定义的枚举类是PayStatus {PAID,UNPAID}。 fun nextRentDate(): LocalDate? { return rentPaymentSchedule. filter { it.value.paymentStatus is PayStatus.UNPAID}. minBy { it.value.date.toEpochDay() }?.value?.date } 我得到的错误:Kotlin:不兼容的types:PayStatus.UNPAID和枚举

如何从一个枚举类和kotlin中的一个字符串获取原始types的枚举值

我在java中有以下代码: Enum getEnumValue(Class enumClass, String value) { return Enum.valueOf((Class) enumClass, value); } 如何在Kotlin中重写? 更新 enumValueOf()函数不适用于这种情况,因为我不知道实际的types参数,我只有一个Class具有未知types的对象(kotlin中的Class )和一个名称字符串。 该类被称为枚举: Class.isEnum返回true。 使用这两个输入,上面的java代码可以获得原始types的枚举值。 这正是我所需要的,因为我对枚举的具体types不感兴趣。 但我无法弄清楚如何在kotlin中得到相同的结果。

如何定义一个调用枚举实例的xml配置spring bean?

我有一个枚举(这是kotlin,但没关系,也可能是Java) enum class AnEnum { A_VALUE { override fun aMethod(arg: ArgClass): AClass { //… } }; abstract fun aMethod(arg: ArgClass): AClass } 我需要一个Spring xml bean中的bean,它是调用枚举值的“aMethod”的结果。 看来我不能以通常的方式使用“工厂方法” 我知道如何获得枚举值的bean,如果这有助于打破这个问题: A_VALUE 我不知道如何创建一个types为“AClass”的bean,这是在enum实例上调用带有参数的方法的结果。 我不是很熟悉spring,而且在bean定义之前,我使用了构造函数或静态方法。

如何在Enum常量中实现抽象函数

我想要实现的是一个简单的模式,我正在使用Java,并应根据文档在Kotlin中可行。 我只是想用一些实现相同抽象函数的常量定义来声明一个枚举类。 我的问题是,我无法设法让我的代码编译。 我总是得到相同的错误: modifier abstract not allowed here 这里是代码: enum class Program { HOME { override fun readableName(context: Context): String { return context.getString(R.string.program_home) } }, WEEKEND { override fun readableName(context: Context): String { return context.getString(R.string.program_weekend) } }, SHOPPING { override fun readableName(context: Context): String { return context.getString(R.string.program_shopping) } }; abstract fun readableName(context: Context): String […]

枚举懒惰属性

我想知道如何处理枚举属性kotlin。 如果我们有以下结构的枚举: enum class MyEnun(var sampleObject: MyObjectType){ ONE(MyObjectType(blabla)), TWO(MyObjectType(blabla)) } 这两个MyObjectType实例是以一种懒惰的方式创建的,相反,它们将在创建枚举时创建?

Kotlin:如何用扩展函数扩展enum类

我想用下面的函数扩展types为String枚举类,但无法在调用站点使用它,如下所示: fun <T: Enum> Class.join(skipFirst: Int = 0, skipLast: Int = 0): String { return this.enumConstants .drop(skipFirst) .dropLast(skipLast) .map { e -> e.name } .joinToString() } MyStringEnum.join(1, 1); 我在这里做错了什么?

如何通过在Kotlin中使用枚举转换为NotNull

如何使用Kotlin将以下代码转换为enum类中的NotNull ? 注意:我在两个活动之间使用这个枚举,一个活动有两个适配器。 这里是枚举类 enum class Adapterx { ADAPTER_1, ADAPTER_2; companion object { fun fromOrdinal(ordinal: Int): Adapterx? { return Adapterx.values().firstOrNull { it.ordinal == ordinal } } } }

Enum和在Kotlin

无论我的语法是错误的,或者你不能用于应用enum常量。 IntelliJ说这是因为RegexOption没有伴随对象,而且RegexOption needs to be initialized here 。 我不认为你可以实例化一个枚举。 // this works: val RX_OPTIONS = mapOf( ‘c’ to RegexOption.COMMENTS, ‘d’ to RegexOption.DOT_MATCHES_ALL, ‘e’ to RegexOption.CANON_EQ, ‘i’ to RegexOption.IGNORE_CASE, ‘l’ to RegexOption.LITERAL, ‘m’ to RegexOption.MULTILINE, ‘u’ to RegexOption.UNIX_LINES ) // this doesn’t work: val RX_OPTIONS2 = with(RegexOption) { mapOf( ‘c’ to COMMENTS, ‘d’ to DOT_MATCHES_ALL, ‘e’ […]