作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个函数,它接受一个泛型类型的参数,我想访问它的类:
fun <T> test(t: T) {
t::class
}
这会因为“类文字中的表达式具有可为空的类型”而失败。没关系,我理解(我可以使用 Any?
作为我的 T
和 null
作为值)。
但是,如果我将其更改为保证 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/
我是一名优秀的程序员,十分优秀!