0

我正在关注 Android Developers 文档,因此我的 DAO 中有以下内容:

@Insert(onConflictStrategy = OnConflictStrategy.REPLACE)
ListenableFuture<Integer> insertProjects(Project... projects);

当我使用类型时void,我能够正确初始化数据库并按预期使用该方法。但是,当我使用 ListenableFuture 并运行它时,构建会出现以下错误:

Not sure how to handle insert method's return type.

ListenableFuture<Integer> insertProjects(Project... projects);
                          ^

文档实际上并没有告诉我如何使用它,更不用说在使用它时会出现错误。

编辑:

文档是这样说的:

// Returns the number of users inserted.
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    public ListenableFuture<Integer> insertUsers(List<User> users);

发生了什么,我该如何解决这个问题?

干杯

4

1 回答 1

0

文档中所述:

如果@Insert 方法接收到单个参数,它可以返回一个long 值,即插入项的新rowId。如果参数是一个数组或一个集合,那么该方法应该返回一个数组或一个 long 值的集合

所以试试这个:

@Insert(onConflict = OnConflictStrategy.REPLACE)
ListenableFuture<List<Long>> insertProjects(Project... projects);
于 2021-01-22T21:45:26.300 回答