android - 什么会导致使用 Android Studio 在 RoomDatabase 文件中不允许使用修饰符“抽象”?
问题描述
我正在学习使用 Android Studio,并且通常遵循在线教程来开发一个简单的应用程序,该应用程序使用 Room 等架构进行数据库访问和管理。我已经编写了 Entity 和 Dao 文件,但在数据库文件中,对 Dao 文件的引用给出了警告“此处不允许修改器‘抽象’”。我不确定这是否会随着项目的发展而自行“修复”,但本教程中没有提到类似的事情。
我尝试过删除和重新生成文件,重新同步和交叉检查行与可比较的工作代码。谷歌搜索并没有产生真正可比较的比较条件。
package org.ivanhoegc.ivanhoegolfscoringapp;
import android.content.Context;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
@Database(entities = {Scoring.class}, version = 1)
public abstract class ScoringDatabase extends RoomDatabase {
private static ScoringDatabase instance;
public abstract ScoringDao scoringDao;
public static synchronized ScoringDatabase getInstance(Context context){
if(instance == null){
instance = Room.databaseBuilder(context.getApplicationContext(),
ScoringDatabase.class, "scoring_database")
.fallbackToDestructiveMigration()
.build();
}
return instance;
}
}
代码是整个数据库定义文件,有问题的代码行是“公共抽象 ScoringDao 等”
解决方案
我觉得自己像个傻瓜——问题是缺少括号。
本来应该 -public abstract ScoringDao scoringDao();
推荐阅读
- php - 如何更正使 YouTube ID 与短 URL 一起使用的代码
- android - 当我运行参数化测试时,如何解决这个警告 junit5 抛出?
- sql - 为什么在使用 COUNT 时必须为子查询命名?
- mysql - 存储多媒体帖子时的最佳实践 SQL DB
- haskell - 如何修复 Haskell 中的“非法类型签名”错误
- android - 如何根据用户的角色将用户重定向到android中的不同活动
- tensorflow - TensorFlow 上的 NN 没有训练
- javascript - 无法读取 html 元素数据属性
- javascript - 我可以使用浅渲染访问道具吗?
- javascript - 是否可以使用 Electron Kiosk 禁用 Windows 10 操作中心