如何检查Kotlin中的泛型类型?
我正在尝试在Kotlin中测试一个通用类型。
if (value is Map<String, Any>) { ... }
但编译器抱怨
无法检查擦除类型的实例:jet.Map
正常类型的检查运行良好。
if (value is String) { ... }
使用Kotlin 0.4.68。
我在这里错过了什么?
问题是类型参数被擦除,所以你不能检查完整类型的Map,因为在运行时没有关于这些String和Any的信息。
要解决此问题,请使用通配符:
if (value is Map<*, *>) {...}