I'm burning cycles trying to understand why I'm getting a cast error when I know for a fact that it's a string.
Anyone else seen this in Kotlin? (it fails at the second to last line).
val stringValue =
if (attributesMap[it] !is String) { // same as !(obj is String)
gson.toJson(attributesMap[it])
} else if (attributesMap[it] == null) {
""
} else {
if (attributesMap[it] is String)
logger.info("it's a string wth...${attributesMap[it]}")
attributesMap[it] // <--- The stacktrace shows this line as the culprit, and the above "it's a string line" is printed out as well
}
Here's the error:
java.lang.ClassCastException: class java.util.ArrayList cannot be cast to class java.lang.String (java.util.ArrayList and java.lang.String are in module java.base of loader 'bootstrap')
Updated 1: this started happening after I upgraded from Kotlin 1.4.10 to 1.5.30. Also the input that it fails on is a string that looks like an array: ["item1", "item2"]