属性 getter 或 setter 预期在 Kotlin ViewModel class 中

property getter or setter expected in Kotlin ViewModel class

我有以下 ViewModel class :

class PersonViewModel(
        context: Application,
        private val dataSource: MoviesRemoteDataSource)
    : AndroidViewModel(context) {

    internal val compositeDisposable = CompositeDisposable()
    val person: ObservableField<Person>()
    private val isVisible = ObservableBoolean(false)

    fun showPerson(personId: String) {
        val personSubscription = dataSource.getPerson(personId)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe({ person ->
                    isVisible.set(true)
                    this.person.set(person)
                }
                ) { throwable -> Timber.e(throwable) }

        compositeDisposable.add(personSubscription)
    }
}

这是人 class :

class Person(
        @SerializedName("birthday")
        var birthDay: String?,
        @SerializedName("deathday")
        var deathDay: String?,
        var id: Int,
        @SerializedName("also_known_as")
        var alsoKnowAs: List<String>,
        var biography: String,
        @SerializedName("place_of_birth")
        var placeOfBirth: String?)

在 ViewModel 的这一行显示错误:

val person: ObservableField<Person>()

它说:property getter or setter expected

感谢您的帮助。

最有可能替换为:

val person: ObservableField<Person>()

与:

val person = ObservableField<Person>()

这会将 person 设置为使用您正在创建的 ObservableField<Person> 进行初始化。

查看您的代码:

val person: ObservableField<Person>()

你有一个简单的语法错误 键入后的括号! 删除它们或更改冒号以分配符号:

val person: ObservableField<Person>

val person = ObservableField<Person>()