Java 中的 Room 数据库类和 Kotlin 活动中的实例化

问题描述

只是想知道是否有办法在我用 Kotlin 编写的 CreateNotesActivity 中实例化我的房间数据库(用 Java 编写)。

我的DAO接口和实体类也是用Java编写的。

我的数据库

@Database(entities = Note.class,version = 1,exportSchema = false)
abstract class NotesDatabase extends RoomDatabase {

    public static NotesDatabase notesDatabase;

    public static synchronized NotesDatabase getDatabase(Context context)
    {
        if(notesDatabase == null){
            Room.databaseBuilder(context,NotesDatabase.class,"note_db"
                    ).build();
        }
        return notesDatabase;
    }

    public abstract NoteDao noteDao(); 
}

我需要在 Kotlin 类中实例化它。

解决方法

在公开您的 getDatabase 之后,也许这会对您有所帮助:

        /**
         * Create a new instance of user database
         */
        val dataBase: UserDatabase = UserDatabase.getDatabase(application)
        roomDao = dataBase.roomDao()