ожидается получение или установка свойства в классе Kotlin ViewModel - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть следующий класс ViewModel:

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)
    }
}

И это класс Person:

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

Я ценю вашу помощь.

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

глядя на ваш код:

val person: ObservableField<Person>()

у вас есть простая синтаксическая ошибка скобки после типа! удалите их или измените двоеточие, чтобы назначить знак:

val person: ObservableField<Person>

или

val person = ObservableField<Person>()
0 голосов
/ 25 декабря 2018

Скорее всего, замените:

val person: ObservableField<Person>()

на:

val person = ObservableField<Person>()

Это задает person для инициализации с ObservableField<Person>, который вы создаете.

...