Android room java.util.NoSuchElementException:列表为空

时间:2018-01-31 09:21:40

标签: android sqlite android-sqlite android-room

此查询有什么问题?我在编译时得到这个:

Error:Execution failed for task ':app:compileStagingJavaWithJavac'.
> java.util.NoSuchElementException: List is empty.

enter image description here
这就是我的pojo领域

enter image description here

1 个答案:

答案 0 :(得分:1)

好的,所以没有完美的答案,但我可以发布我的解决方案/ walkaround

  1. 您可以设置布尔值。
  2. 你可以得到布尔值。
  3. 但你不能使用布尔(在可能或单一)

    <强> SOLUTION:

    1. 在我的Entity列中设置为Boolean
    2. 在我的Dao中,我使用boolean
    3. 设置值
    4. 当我想获得价值时

      Maybe<Integer> or Single<Integer>

    5. 就我而言,我使用Single<Integer> 以后做这样的事情(它只是一个例子!)

       public Single<Boolean> getDatabaseValue(Integer id) {
          return localDataSource
              .getDatabaseValue(id)
              .flatMap(this::toBooleanValue)  // map to Single<Boolean>
              .doOnError(throwable -> localDataSource.createFeed(id, false)) //no data, create entity
              .onErrorResumeNext(Single.just(false)); //no data, return default value
      }
      
      
      private Single<Boolean>toBooleanValue(Integer databaseValue) {
          return Single.just(databaseValue == 1);
      }