Класс com.test.test.LibraryBook не определяет конструктор без аргументов

#android #firebase #kotlin #firebase-realtime-database

#Android #firebase #kotlin #firebase-realtime-database

Вопрос:

Я получаю следующую ошибку Class com.test.test.LibraryBook does not define a no-argument constructor

Вот мой код:

   override fun onDataChange(dataSnapshot: DataSnapshot) {
                if (dataSnapshot.exists()) {
                    if (dataSnapshot.children.count() > 0) {
                        for (eventSnapshot in dataSnapshot.children) {
                            val lb = eventSnapshot.getValue(LibraryBook::class.java)
                            lb?.let {
                                val id = lb.id
                                val title = lb.title
                                val image = lb.image
  

Вот класс данных LibraryBook

 @IgnoreExtraProperties
data class LibraryBook(val id: String,
                       val title: String = "",
                       var image: String = "",
                       var subtitle: String = "",
                       var author: String = "",
                       var desc: String = "",
                       var uploadDate: Long = 0,
                       var starCount: Long = 0)
  

Что я сделал не так?

Комментарии:

1. идентификатор не имеет значения по умолчанию, вы пробовали его добавить?

Ответ №1:

Kotlin не создавал конструктор без аргументов для LibraryBook , потому что у него все еще есть один требуемый id аргумент. Вам также придется сделать этот аргумент необязательным, используя некоторое значение по умолчанию, как и другие аргументы.