当我运行代码时,我得到 petsDao 是一个空对象引用,如果我尝试 db.PetsDao() 进行初始化,它没有帮助。我是android新手,请帮帮我。
@Database(entities = {Pets.class},version = 1)
public abstract class PetsDatabase extends RoomDatabase {
private static PetsDatabase instance;
public abstract PetsDao petsDao();
public static synchronized PetsDatabase getInstance(Context context){
if (instance == null){
instance = Room.databaseBuilder(context.getApplicationContext(),
PetsDatabase.class,"Pets_Database")
.fallbackToDestructiveMigration()
.addCallback(roomCallback)
.build();
}
return instance;
}
//This method is to insert dummy data in the database when the database is first created
public static RoomDatabase.Callback roomCallback = new RoomDatabase.Callback(){
@Override
public void onCreate(@NonNull @NotNull SupportSQLiteDatabase db) {
super.onCreate(db);
Runnable runnable = new Runnable() {
private PetsDao petsDao;
@Override
public void run() {
petsDao.insert(new Pets("Tommy","Terrier","Male"));
petsDao.insert(new Pets("Snoopy","Unknown","Male"));
}
};
Thread thread = new Thread(runnable);
thread.start();
}
};
}