Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用@Parcelize,但删除kotlin中的getter和setter_Android_Kotlin_Parcelable - Fatal编程技术网

Android 使用@Parcelize,但删除kotlin中的getter和setter

Android 使用@Parcelize,但删除kotlin中的getter和setter,android,kotlin,parcelable,Android,Kotlin,Parcelable,我试图用@Parcelize忽略kotlin中的getter和setter。但这里有点困惑 class College : Parcelable { var studentFound = true set(value) { field = value studentFoundEvents.onNext(value) } val studentFoundEvents = PublishSubject.create<Boolean>()

我试图用@Parcelize忽略kotlin中的getter和setter。但这里有点困惑

class College : Parcelable {
var studentFound = true
    set(value) {
        field = value
        studentFoundEvents.onNext(value)
    }
val studentFoundEvents = PublishSubject.create<Boolean>()

var sNumber: String? = null
var sLevel: String? = null

var course: Course? = null
    set(value) {
        field = value
        cName = null
        cId = null
        cProf = null  
    }
}
班级学院:可包裹{
var studentFound=true
设置(值){
字段=值
studentFoundEvents.onNext(值)
}
val studentFoundEvents=PublishSubject.create()
变量sNumber:字符串?=null
var sLevel:字符串?=null
变量课程:课程?=null
设置(值){
字段=值
cName=null
cId=null
cProf=null
}
}
我有各自的构造函数(source:Parcel){}重写fun writeToParcel(dest:Parcel?,flags:Int){}重写fun descripbecontents():Int=hashCode()

我想将整个Parcelable转换为@Parcelize。 这是我尝试过的,但没有锻炼

@Parcelize
data class College(
    var studentFound = true,
    val studentFoundEvents = PublishSubject.create<Boolean>(), // does not work here
    var sNumber: String? = null,
    var sLevel: String? = null,
    var course: Course? = null
) : Parcelable
@Parcelize
数据类学院(
var studentFound=true,
val studentFoundEvents=PublishSubject.create(),//在此处不起作用
变量sNumber:字符串?=null,
var sLevel:String?=null,
变量课程:课程?=null
):可包裹

这里少了什么东西吗?提前谢谢。

我花了几个小时研究@Parcelize,不知道这是不是最好的方法。如果您有任何最佳解决方案,请始终高度推荐任何人

@Parcelize
class College : Parcelable {
var studentFound = true
    set(value) {
        field = value
        studentFoundEvents.onNext(value)
    }
val studentFoundEvents = PublishSubject.create<Boolean>()

var sNumber: String? = null
var sLevel: String? = null

var course: Course? = null
    set(value) {
        field = value
        cName = null
        cId = null
        cProf = null  
    }
}

希望这对任何人都有帮助,也欢迎使用最佳方法。

这给出了警告:属性不会序列化为“包”。添加“@IgnoredOnParcel”注释以删除警告。所以它不起作用。
constructor(source: Parcel) {}, 
override fun writeToParcel(dest: Parcel?, flags: Int) {} and 
override fun describeContents(): Int = hashCode().