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#中那样为泛型参数提供类约束,或者是否可以使用其他语法来获取泛型参数的类型信息?
我有课
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 ×2