@@ -86,29 +86,29 @@ fun <T : Any> JsonObject.construct(clazz: KClass<T>): T {
86
86
val nonNullableType = it.type.withNullability(false )
87
87
if (nonNullableType.isSubtypeOf(Int ::class .starProjectedType)) {
88
88
paramz.put(it, flexGet(name)?.asInt())
89
- } else if (nonNullableType.isSubtypeOf(Long ::class .starProjectedType)) {
89
+ } else if (nonNullableType.isSubtypeOf(Long ::class .starProjectedType.withNullability( true ) )) {
90
90
paramz.put(it, flexGet(name)?.asLong())
91
- } else if (nonNullableType.isSubtypeOf(Float ::class .starProjectedType)) {
91
+ } else if (nonNullableType.isSubtypeOf(Float ::class .starProjectedType.withNullability( true ) )) {
92
92
paramz.put(it, flexGet(name)?.asFloat())
93
- } else if (nonNullableType.isSubtypeOf(Double ::class .starProjectedType)) {
93
+ } else if (nonNullableType.isSubtypeOf(Double ::class .starProjectedType.withNullability( true ) )) {
94
94
paramz.put(it, flexGet(name)?.asDouble())
95
- } else if (nonNullableType.isSubtypeOf(BigInteger ::class .starProjectedType)) {
95
+ } else if (nonNullableType.isSubtypeOf(BigInteger ::class .starProjectedType.withNullability( true ) )) {
96
96
paramz.put(it, flexGet(name)?.asNumber())
97
- } else if (nonNullableType.isSubtypeOf(BigDecimal ::class .starProjectedType)) {
97
+ } else if (nonNullableType.isSubtypeOf(BigDecimal ::class .starProjectedType.withNullability( true ) )) {
98
98
paramz.put(it, flexGet(name)?.asNumber())
99
- } else if (nonNullableType.isSubtypeOf(Long ::class .starProjectedType)) {
99
+ } else if (nonNullableType.isSubtypeOf(Long ::class .starProjectedType.withNullability( true ) )) {
100
100
paramz.put(it, flexGet(name)?.asLong())
101
- } else if (nonNullableType.isSubtypeOf(String ::class .starProjectedType)) {
101
+ } else if (nonNullableType.isSubtypeOf(String ::class .starProjectedType.withNullability( true ) )) {
102
102
paramz.put(it, flexGet(name)?.asString())
103
- } else if (nonNullableType.isSubtypeOf(Boolean ::class .starProjectedType)) {
103
+ } else if (nonNullableType.isSubtypeOf(Boolean ::class .starProjectedType.withNullability( true ) )) {
104
104
paramz.put(it, flexGet(name)?.asBoolean())
105
- } else if (nonNullableType.isSubtypeOf(Enum ::class .starProjectedType)) {
105
+ } else if (nonNullableType.isSubtypeOf(Enum ::class .starProjectedType.withNullability( true ) )) {
106
106
val enumName = flexGet(name)?.asString()
107
107
if (enumName != null ) {
108
108
@Suppress(" UNCHECKED_CAST" ) // we already checked but too hard for Kotlin to figure out
109
109
paramz.put(it, enumVal(it.type.jvmErasure as KClass <Enum <* >>, enumName))
110
110
}
111
- } else if (nonNullableType.isSubtypeOf(JsonElement ::class .starProjectedType)) {
111
+ } else if (nonNullableType.isSubtypeOf(JsonElement ::class .starProjectedType.withNullability( true ) )) {
112
112
paramz.put(it, flexGet(name))
113
113
} else {
114
114
paramz.put(it, flexGet(name)?.asObject()?.construct(it.type.jvmErasure))
0 commit comments