什么会导致使用 Android Studio 的 RoomDatabase 文件中不允许使用修饰符“抽象”?

Har*_*rry 0 database android dao syntax-error abstract

我正在学习使用 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;
    }


}
Run Code Online (Sandbox Code Playgroud)

代码是整个数据库定义文件,有问题的代码行是一个'public abstract ScoringDao etc

Har*_*rry 8

我觉得自己像个彻头彻尾的傻瓜 - 问题是缺少括号。

本来应该 - public abstract ScoringDao scoringDao();

  • 你不是一个人 :) (3认同)