Android База данных комнат - это singleton. Почему нет частного конструктора? - PullRequest
0 голосов
/ 25 апреля 2020

Ниже мой класс AppDatabase. который синглтон

    import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;

@Database(entities = {NoteEntity.class}, version =1,exportSchema = false)
@TypeConverters(DateConverter.class)
public abstract class AppDatabase extends RoomDatabase {
    private static AppDatabase instance;
//android will automatically generate code for this abstract method. so we dont need to implement this
    public abstract NoteDao noteDao();

    public static synchronized AppDatabase getInstance(Context context){
        if(instance==null){
            instance= Room.databaseBuilder(context.getApplicationContext(),AppDatabase.class, "AppDatabase.db").build();
        }
        return instance;

    }
}

выше кода работают нормально. но когда я включаю частный конструктор

private AppDatabase(){}

, эта ошибка показывает

ошибка: AppDatabase () имеет частный доступ в AppDatabase publi c конечный класс AppDatabase_Impl extends AppDatabase {

Мой вопрос, если это шаблон синглтона, почему я не могу включить частный конструктор

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