Почему рекомендуется сделать класс, расширяющий Room Database, абстрактным? - PullRequest
0 голосов
/ 02 июля 2019

В чем причина этого?Это для исполнения или принуждения?Пожалуйста, объясните

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Поскольку RoomDatabase имеет определенные методы, наследующий класс не может быть интерфейсом. И поскольку вы пишете свой неопределенный метод в этом абстрактном классе, он не может быть классом.

public interface MyDatabase extends RoomDatabase // extend is not allowed for interface

public class MyDatabase extends RoomDatabase {

     public abstract MyDao myDao(); // abstract method is not allowed for non abstract class

}

0 голосов
/ 02 июля 2019

Потому что Room предоставляет уровень абстракции поверх SQLite, чтобы обеспечить свободный доступ к базе данных, используя все возможности SQLite.

Комната - это ORM, библиотека объектно-реляционного сопоставления. Другими словами, Room отобразит объекты нашей базы данных на объекты Java. Room обеспечивает уровень абстракции поверх SQLite, чтобы обеспечить свободный доступ к базе данных, используя все возможности SQLite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...