gpt4 book ai didi

Android:错误:不能从静态上下文引用非静态类型变量 T

转载 作者:行者123 更新时间:2023-12-03 14:46:39 24 4
gpt4 key购买 nike

我有以下类(class):

@Parcelize
data class Collection<T : Parcelable> constructor(
var models: List<T>,
var cursor: String?
) : Parcelable
当我使用 Kotlin 1.4.10 ,项目构建正确,没有任何错误,然后我将项目更新为 Kotlin 1.4.21 ,并迁移到使用 kotlin-parcelize而不是 kotlin-android-extensions ,所以在 Kotlin 更新后,在构建项目时出现以下错误:
> Task :domain:kaptDebugKotlin FAILED
/Library/DevelopmentArea/workspace/baaz_android_new/clean_domain/domain/build/tmp/kapt3/stubs/debug/com/myapp/domain/model/Collection.java:101: error: non-static type variable T cannot be referenced from a static context
public final com.myapp.domain.model.Collection<T>[] newArray(int size) {
^/Library/DevelopmentArea/workspace/baaz_android_new/clean_domain/domain/build/tmp/kapt3/stubs/debug/com/myapp/domain/model/Collection.java:110: error: non-static type variable T cannot be referenced from a static context
public final com.myapp.domain.model.Collection<T> createFromParcel(@org.jetbrains.annotations.NotNull()
注:我正在使用 Android Studio 4.1.1

最佳答案

目前为了修复我得到的错误,同时继续使用 Kotlin 1.4.21,我刚刚删除了 @Parcelize来自任何具有通用类型用法的类的注释,例如问题中的注释,并且刚刚实现了 Parcelable使用如下旧方式:

    data class Collection<T> constructor(
var models: List<T>,
var cursor: String?
) : Parcelable {

constructor(parcel: Parcel) : this(
mutableListOf<T>().also { list: List<T> ->
parcel.readList(list, Collection<T>::models.javaClass.classLoader)
},
parcel.readString())

override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeList(models)
parcel.writeString(cursor)
}

override fun describeContents(): Int = 0

companion object {

@JvmField
val CREATOR = object : Parcelable.Creator<Collection<Parcelable>> {
override fun createFromParcel(source: Parcel): Collection<Parcelable> {
return Collection(source)
}

override fun newArray(size: Int): Array<Collection<Parcelable>?> {
return arrayOfNulls(size)
}
}
}
}

关于Android:错误:不能从静态上下文引用非静态类型变量 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65407003/

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