Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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 基本领域+;Kotlin:RealmObject未设置传递的值_Android_Realm_Kotlin - Fatal编程技术网

Android 基本领域+;Kotlin:RealmObject未设置传递的值

Android 基本领域+;Kotlin:RealmObject未设置传递的值,android,realm,kotlin,Android,Realm,Kotlin,最近我开始在Kotlin中使用Realm,但我无法在DB上进行简单的插入。下面是我正在使用的代码: 模型 刀型 objectuserdao{ val TAG=UserDAO::class.simpleName val mRealm=Realm.getDefaultInstance() 乐趣创建(用户:用户){ mRealm.beginTransaction() mapObject(用户) mRealm.commitTransaction() Log.i(标记“领域持久化对象:$user succ

最近我开始在Kotlin中使用Realm,但我无法在DB上进行简单的插入。下面是我正在使用的代码:

模型 刀型
objectuserdao{
val TAG=UserDAO::class.simpleName
val mRealm=Realm.getDefaultInstance()
乐趣创建(用户:用户){
mRealm.beginTransaction()
mapObject(用户)
mRealm.commitTransaction()
Log.i(标记“领域持久化对象:$user successfully}”)
}
趣味阅读(id:Long):用户{
val user=mRealm.where(user::class.java).equalTo(“user_id”,id).findFirst()
Log.i(标记,“领域读取对象:$user”)
返回用户
}
乐趣列表():RealmResults{
val realm=realm.getDefaultInstance()
返回realm.where(User::class.java).findAll()
}
趣味更新(用户:用户){
mRealm.beginTransaction()
mRealm.copyToRealmOrUpdate(用户)
mRealm.commitTransaction()
Log.i(标记,“领域更新对象:$user”)
}
趣味删除(id:Long){
mRealm.beginTransaction()
val user=mRealm.where(user::class.java).equalTo(“user_id”,id).findAll()
user.clear()
Log.i(标记,“领域移除对象:$user”)
mRealm.commitTransaction()
}
全数{
mRealm.beginTransaction()
val results=mRealm.where(User::class.java).findAll()
结果:clear()
mRealm.commitTransaction()
}
private fun mapObject(用户:用户){
val realmUser=mRealm.createObject(User::class.java)
realmUser.name=user.name
realmUser.user\u id=user.user\u id
realmUser.nickname=user.nickname
realmUser.thumboil=user.thumboil
realmUser.password=“示例密码”
realmUser.email=user.email
realmUser.token=user.token
realmUser.country\u代码=user.country\u代码
realmUser.image\u profile\u original=user.image\u profile\u original
realmUser.status=user.status
realmUser.type=user.type
realmUser.birth\u date=user.birth\u date
realmUser.gender=user.gender
realmUser.distance=user.distance
realmUser.game\u对象=user.game\u对象
realmUser.games=user.games
realmUser.friends=user.friends
realmUser.friends\u request=user.friends\u request
}
}

问题出在mapObject函数内部。即使参数user已填充,对象realmUser也不会将传递的值分配给它。有什么想法吗?

如何验证realmUser没有正确的值?代码看起来是正确的。我正在通过debbuger进行验证,在尝试分配值之后,值没有显示在var状态上。不管怎样,我又开始了这个过程,它开始工作了。我会在几分钟后公布我所做的事情
open class User : Serializable, RealmObject() {
    open var user_id: Long = 0
    open var name: String = ""
    open var nickname: String = ""
    open var thumbnail: String = ""
    open var password: String = ""
    open var email: String = ""
    open var token: String = ""
    open var country_code: String = ""
    open var image_profile_original: String = ""
    open var distance: Double = 0.toDouble()
    open var birth_date: Date = Date()

    @Ignore
    open var status: UserStatus = UserStatus.OFFLINE
    @Ignore
    open var type: UserType = UserType.OTHER
    @Ignore
    open var gender: Gender = Gender.male
    @Ignore
    open var game_objects = mutableListOf<Game>()
    @Ignore
    open var games = mutableListOf<Long>()
    @Ignore
    open var friends: RealmList<User>? = null
    @Ignore
    open var friends_request: RealmList<User>? = null

    override fun toString(): String {
        return Gson().toString()
    }

    fun toCanvasUser(): br.com.edsilfer.android.messenger.model.User {
        val canvasUser: br.com.edsilfer.android.messenger.model.User = br.com.edsilfer.android.messenger.model.User()
        canvasUser.id = user_id.toDouble()
        canvasUser.name = name!!
        canvasUser.nickname = nickname!!
        canvasUser.thumbnail = image_profile_original!!
        return canvasUser
    }

    companion object {
        fun fromCanvasUser(canvasUser: br.com.edsilfer.android.messenger.model.User): User {
            val user = User()
            return user
        }
    }
}
private fun initRealm() {
    Realm.init(this)
    val config = RealmConfiguration.Builder()
            .deleteRealmIfMigrationNeeded()
            .build()
}
object UserDAO {

    val TAG = UserDAO::class.simpleName
    val mRealm = Realm.getDefaultInstance()

    fun create(user: User) {
        mRealm.beginTransaction()
        mapObject(user)
        mRealm.commitTransaction()
        Log.i(TAG, "Realm persisted object: $user successfully}")
    }

    fun read(id: Long): User {
        val user = mRealm.where(User::class.java).equalTo("user_id", id).findFirst()
        Log.i(TAG, "Realm read object: $user")
        return user
    }

    fun list(): RealmResults<User> {
        val realm = Realm.getDefaultInstance()
        return realm.where(User::class.java).findAll()
    }

    fun update(user: User) {
        mRealm.beginTransaction()
        mRealm.copyToRealmOrUpdate(user)
        mRealm.commitTransaction()
        Log.i(TAG, "Realm updated object: $user")
    }

    fun delete(id: Long) {
        mRealm.beginTransaction()
        val user = mRealm.where(User::class.java).equalTo("user_id", id).findAll()
        user.clear()
        Log.i(TAG, "Realm removed object: $user")
        mRealm.commitTransaction()
    }

    fun deleteAll() {
        mRealm.beginTransaction()
        val results = mRealm.where(User::class.java).findAll()
        results.clear()
        mRealm.commitTransaction()
    }

    private fun mapObject(user: User) {
        val realmUser = mRealm.createObject(User::class.java)
        realmUser.name = user.name
        realmUser.user_id = user.user_id
        realmUser.nickname = user.nickname
        realmUser.thumbnail = user.thumbnail
        realmUser.password = "sample password"
        realmUser.email = user.email
        realmUser.token = user.token
        realmUser.country_code = user.country_code
        realmUser.image_profile_original = user.image_profile_original
        realmUser.status = user.status
        realmUser.type = user.type
        realmUser.birth_date = user.birth_date
        realmUser.gender = user.gender
        realmUser.distance = user.distance
        realmUser.game_objects = user.game_objects
        realmUser.games = user.games
        realmUser.friends = user.friends
        realmUser.friends_request = user.friends_request
    }
}