android - 无法在 Kotlin 中制作通用项目

标签 android firebase kotlin generics google-cloud-firestore

我想让以下代码行通用:

val newItem: Item = documentChange.document.toObject<Item>(Item::class.java)
工作正常。但是,当我尝试使其通用时:
val addedItem: T = documentChange.document.toObject<T>(T::class.java)
Android Studio 提示:

Cannot use 'T' as reified type parameter. Use a class instead.


Screenshot
我怎样才能使它通用?

最佳答案

你需要做一个函数 inline 并添加 reified 泛型参数的关键字:

inline fun <reified T> someFun() {
    //...
    val addedItem: T = documentChange.document.toObject<T>(T::class.java)
}

关于android - 无法在 Kotlin 中制作通用项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62637460/

相关文章:

java - Android WebView 文件处理在取消/返回时崩溃

testing - 在 Kotlin 中使用 Mockito doAnswer

android-studio - 在Android Studio中使用导航框架时,如何知道保留的类名或关键字?

javascript - 无法将数据从应用程序组件传递到函数

Firebase - 添加数据库规则 - 路径包含无效字符

android - 使用 Kotlin 在 Android 中 startActivity 后没有任何反应

java - uri.getQueryParameter ("oauth_verifier")始终为空

java - Android listview排序使用xml解析

java - 相机 Intent 调用 onDestroy()

android - 如何使用 FirebaseListAdapter 填充 ListView?