Ruckus
06/27/2018, 5:56 PMval type: Class<T> = ...
val clazz: Class<Any> = ...
val superClazz = clazz.superclass // is Class<in Any!>!
// works fine
if (type == clazz) ...
// won't compile: Operator '==' cannot be applied
if (type == superClazz) ...
Why doesn't that work? Doesn't Class<in Any!>! : Any
still hold true?robstoll
06/28/2018, 10:39 AMClass <T>
and I guess (cannot check right now) that == for class has no speciel out
modifier defined.robstoll
06/28/2018, 10:47 AMClass<T>
against Class<Any>
works, then there must be an out
modifier. In this case I guess the in
modifier contradicts this. Class<in Any>
<: Any holds but Class<in Any>
<: Class<Any>
does not.robstoll
06/28/2018, 12:59 PM==
is defined on `Any`and expects an Any?
. So no out
modifier required.robstoll
06/28/2018, 1:02 PMrobstoll
06/28/2018, 1:05 PMval a = Any::class.java.superclass
val b: Any? = a
robstoll
06/28/2018, 1:07 PMrobstoll
06/28/2018, 1:13 PM