Yok iyidir eşittir. Kotlin en Data Class
varsayılan kurucu kullanarak birkaç Yöntemleri üretir. Bu, equals(), hashCode(), ,, componentN() functions ve 'un, kurucunuza atadığınız nitelikler kullanılarak üretildiği anlamına gelir. Yukarıdaki çözüm kullanılarak
gibi
@Entity data class Site(@PrimaryKey(autoGenerate = true) var id: Long) {
@Ignore constructor() : this(0)
var name: String = ""
var url: String = ""
}
sadece kimliği için yukarıda listelenen tüm yöntemler oluşturur. Eşit kullanımı, toString() ile aynı istenmeyen kaliteye yol açar. Bu Çözme hepinizin genellikle toString ve kopya gibi yöntemleri var veri sınıflarını kullanan, gerçekten akılda tutmalı
@Entity data class Site(
@NonNull @PrimaryKey(autoGenerate = true) var id: Long,
var name: String = "",
var url: String = "") {
@Ignore constructor(id = 0, name = ", url = "") : this()
}
gibi görmezden kurucu içinde işlemek ve kullanan ikinci bir yapıcı eklemek istediğiniz nitelikleri olmasını gerektirir . Çalışma zamanında istenmeyen hataları önlemek için yalnızca bu çözüm çalışıyor.
Bu veri sınıfı için ikincil kurucu yapabilir miyiz? –
Eğer Emanuel yanıtını https://stackoverflow.com/a/46526911/3005202 deneyebilirsiniz –