相关疑难解决方法(0)

如何在Kotlin中获取泛型参数类

Firebase snapshot.getValue()预计会被调用如下:

snapshot?.getValue(Person::class.java)
Run Code Online (Sandbox Code Playgroud)

但是我想Person用通过类声明传递给类的泛型参数替换,即

class DataQuery<T : IModel> 
Run Code Online (Sandbox Code Playgroud)

并使用该泛型参数执行以下操作:

snapshot?.getValue(T::class.java)
Run Code Online (Sandbox Code Playgroud)

但当我尝试我得到一个错误说明

只有类可以在类文字的左侧使用

是否可以像在C#中那样为泛型参数提供类约束,或者是否可以使用其他语法来获取泛型参数的类型信息?

kotlin

48
推荐指数
4
解决办法
3万
查看次数

如何检查Kotlin中的泛型类型?

我有课

class Generic<T : SuperType>()
Run Code Online (Sandbox Code Playgroud)

这段代码不对

fun typeCheck(s: SuperType): Unit {
            when(s){
                is T -> //do some thin
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是施放s类型T s as T显示警告 - 不安全的施法.
怎么检查s是什么类型T

kotlin

22
推荐指数
3
解决办法
1万
查看次数

标签 统计

kotlin ×2