Kotlin: isAssignableFrom и проверки типа отражения

В Kotlin (1.0.6), через отражение мне нужно перебирать членов класса (назовем его Foo ) и делать что-то на основе возвращаемого типа. Я могу написать следующее, которое работает:

 Foo::class.members{ m -> if(Integer.TYPE.isAssignableFrom(m.returnType.javaType as Class<*>)){ //do something here } else if ... } 

проблема в том, что оператор if (для обработки kotlin.Int ) довольно уродлив. Есть ли лучший способ в Котлине добиться такого же результата, не полагаясь непосредственно на Java API?

Нет, нет лучшего способа пред-1.1 Котлин.

Вы можете использовать Int::class.javaObjectType вместо Integer.TYPE чтобы избежать использования java.lang.Integer в коде Kotlin, но это делает оператор еще более длинным (хотя и более идиоматичным).

В Kotlin 1.1 вы можете использовать isSubtypeOf или запросить jvmErasure . allSupertypes напрямую.