我有一个函数,它接受一个泛型类型的一个参数,我想访问它的类:为什么我无法获得泛型参数的类?
fun <T> test(t: T) {
t::class
}
这种失败,“类文字表达有可空类型”。没关系,我理解(我可以用Any?
作为我T
和null
作为值)。
但是,如果我将其更改为保证这项t
不是空它仍然失败,相同的错误消息:
fun <T> test(t: T) {
t!!::class
}
在这种情况下,可以t!!::class
还是捣乱?
有没有办法让不使用任何(或铸造的话)类?
不错,真不错。但是,在这种情况下't !! :: class'会有问题吗? – danielspaniol
不太确定。我玩过它,并没有一个很好的解释,TBH。 – Todd
@danielspaniol请参阅:https://stackoverflow.com/questions/35602231/kotlin-generics-reflection-and-the-difference-between-type-t-and-tany/35602699#35602699,'t !!'是在回答的评论中讨论。 – hotkey