Частный конструктор требует синтетического доступа - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть пара определений (действительно больше, но этого достаточно, чтобы продемонстрировать проблему):

sealed class BackButton(val action: ButtonAction) {
    abstract fun setup(actionBar: ActionBar, toolbar: Toolbar)
}

class NoBackButton : BackButton({}) {
    override fun setup(actionBar: ActionBar, toolbar: Toolbar) {
        actionBar.setDisplayHomeAsUpEnabled(false)
    }
}

Это компилируется нормально, но lint выдает ошибку:

Access to private constructor of class BackButton requires synthetic accessor [SyntheticAccessor]

Теперь, насколько я могу судить, конструктор BackButton на самом деле общедоступен, так что, кроме подавления предупреждения, как я могу обойти проблему?

Обновление: так что очевидно, что закрытые конструкторы классов должны бытьprivate в том, что должно быть абстрактным классом.Мне кажется, что эта реализация по своей сути несовершенна, но это совершенно другая проблема.

...