我使用lib jackson-module-kotlin将json字符串解析为对象。
我的问题是,当我将字符串解析为枚举时,当我使用intellij启动时,我有以下堆栈跟踪:
我该怎么办?
enum class CType { DEAL, FILE }
data class Code(val code: String, val type: CType)
fun testDeserialization() {
val mapper = jacksonObjectMapper()
// following line throws an exception:
mapper.readValue("""{"code":"A","type":"DEAL"}""", Code::class.java)
}
我让它工作的唯一方法是添加额外的@jvmstatic
注释。我有mapper.registermodule(new KotlinModule());
,除了以下内容以外,什么都不起作用:
package nc.features.algo.model
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonValue
enum class LHStatus (
@get:JsonValue val code: Int
) {
LH_POS_OVU_WAITING(1),
LH_NEG_OVU_WAITING(2),
;
companion object {
@JsonCreator
@JvmStatic
fun deser(code: Int?): LHStatus? {
if (code == null) return null
for (i in values()) {
if (i.code == code) return i
}
return null
}
}
}
我有一个类似的枚举: json文件本身有private字段,所以我需要private(它是java键盘)来进行序列化和映射,但是如果我使用private和所有小写,这将是一个运行时错误。我使用了上面代码中的@JSONProperty,但仍然不起作用。 进程已完成,退出代码为0
我试图构建一个通用方法,它将作为参数并处理一些信息。 但不幸的是,它不能像我希望的那样工作。也许你有一些建议来改进我的代码并防止错误。 我在调用: 无法在 我在和调用: 无法解析方法 无法解析方法 我需要在方法中使用的枚举都具有相同的结构。 例如,其中一个看起来像这样: 我知道我可以通过使用 但我的方法不会是通用的。我想对我的任何枚举使用此方法。
问题:给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。 您可以假设每个输入都有一个精确的解决方案,并且您可以不使用相同的元素两次。 例子: 给定nums=[2,7,11,15],target=9, 因为Nums[0]Nums[1]=2 7=9,返回[0,1]。 使用for循环后,我无法理解这些步骤。我是Python新手,请有人帮助我。
例如,我如何做类似的事情: 结果示例:
主要内容:使用枚举常量枚举类最基本的用法是实现一个类型安全的枚举。 枚举常量用逗号分隔,每个枚举常量都是一个对象。 枚举初始化 每一个枚举都是枚举类的实例,它们可以被初始化: 默认名称为枚举字符名,值从0开始。若需要指定值,则可以使用其构造函数: 枚举还支持以声明自己的匿名类及相应的方法、以及覆盖基类的方法。如: 如果枚举类定义任何成员,要使用分号将成员定义中的枚举常量定义分隔开 使用枚举常量 Kotlin 中的枚举类
枚举类最基本的用法是实现一个类型安全的枚举。 枚举常量用逗号分隔,每个枚举常量都是一个对象。 enum class Color{ RED,BLACK,BLUE,GREEN,WHITE } 枚举初始化 每一个枚举都是枚举类的实例,它们可以被初始化: enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF0