gpt4 book ai didi

generics - 为什么我不能得到泛型参数的类?

转载 作者:IT老高 更新时间:2023-10-28 13:30:03 27 4
gpt4 key购买 nike

我有一个函数,它接受一个泛型类型的参数,我想访问它的类:

fun <T> test(t: T) {
t::class
}

这会因为“类文字中的表达式具有可为空的类型”而失败。没关系,我理解(我可以使用 Any? 作为我的 Tnull 作为值)。
但是,如果我将其更改为保证 t 不为空,它仍然会失败并显示相同的错误消息:

fun <T> test(t: T) {
t!!::class
}

在什么情况下t!!::class 仍然会造成麻烦?
有没有办法在不使用 Any(或强制转换为 Any)的情况下获取类(class)?

最佳答案

更改您的类型以指示它不可为空并且它应该可以工作。您可以通过指示 T 需要扩展 Any(而不是 Any?)来做到这一点。

fun <T : Any> test(t: T) {
t::class
}

关于generics - 为什么我不能得到泛型参数的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46181041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com