andreasmattsson
data class TestContainer( val body: Any? ) operator fun TestContainer?.compareTo(b: TestContainer?): Int = this?.body.let { aBody -> b?.body.let { bBody -> when { aBody is Boolean && bBody is Boolean -> { val aBoolean: Boolean = aBody val bBoolean: Boolean = bBody return aBoolean.compareTo(bBoolean) } else -> -1 } } } fun main() { println("Comparison: ${TestContainer(true) < TestContainer(false)}") }
data class TestContainer( val body: Any? ) operator fun TestContainer?.compareTo(b: TestContainer?): Int = this?.body.let { aBody -> b?.body.let { bBody -> when { aBody is Boolean && bBody is Boolean -> aBody.compareTo(bBody) else -> -1 } } } fun main() { println("Comparison: ${TestContainer(true) < TestContainer(false)}") }
Exception in thread "main" java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Number
Tobias Berger
(Boolean)aBody
((Number)aBody).intValue()
A modern programming language that makes developers happier.