Android 使用@Parcelize,但删除kotlin中的getter和setter
我试图用@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>()
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().