本文介绍了如何在Kotlin中检查泛型类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在Kotlin中测试泛型.
I'm trying to test for a generic type in Kotlin.
if (value is Map<String, Any>) { ... }
但是编译器抱怨
普通类型的支票效果很好.
The check with a normal type works well.
if (value is String) { ... }
使用Kotlin 0.4.68.
Kotlin 0.4.68 is used.
我在这里想念什么?
推荐答案
问题在于类型参数已被擦除,因此您无法检查完整类型Map,因为在运行时没有有关这些String和Any的信息.
The problem is that type arguments are erased, so you can't check against the full type Map, because at runtime there's no information about those String and Any.
要解决此问题,请使用通配符:
To work around this, use wildcards:
if (value is Map<*, *>) {...}
这篇关于如何在Kotlin中检查泛型类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!