【发布时间】:2020-04-25 11:14:08
【问题描述】:
下面是我的 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 中具有私有访问权限 公共最终类 AppDatabase_Impl 扩展 AppDatabase {
我的问题是,如果这是单例模式,为什么我不能包含私有构造函数
【问题讨论】: