Trả về phụ trợ có thể vô hiệu hóa Int? Tôi nên viết giá trị rỗng như thế nào?Viết vào giá trị vô giá trị parcer trong kotlin
date class Foo (var value: Int?){
constructor(source: Parcel) : this(
source.readInt()
)
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeInt(value) // doesn't compile - writeInt expect no null value
}
}
Bây giờ tôi có giải pháp:
dest.writeInt(value?: -1)
Và sau đó kiểm tra đến -1
hoặc viết Int như chuỗi và sau đó sử dụng giá trị của ...
nhưng tôi nghĩ rằng đó là xấu và sai.
GIẢI QUYẾT! Câu trả lời của tôi:
source.readValue(Int::class.java.classLoader) as Int?,
dest.writeValue(value)
Sẽ không phải 'dest.writeInt (giá trị !!) 'làm việc? Theo tôi nhớ, Android không quan tâm nếu bạn chuyển giá trị 'null' vào Parcel. –
!! - xảy ra nullPointerexception và sự cố! – Yvgen
Nếu bạn tìm thấy câu trả lời cho câu hỏi của mình, bạn nên đăng câu trả lời và chấp nhận câu trả lời. – Bryan