におけるいくつかのラムダ式のまわりで私の頭を取得できません私は、ラムダ式を使用せずに、このようなコードのこのスニペットを持っています:は、Java 8
.map((Function<List<Post>, List<Post>>) posts -> realm.where(Post.class).equalTo(DatabaseContract.PostTable.USER_ID, userId).findAll())
.onErrorResumeNext(throwable -> {
Log.d("rafael", throwable.getMessage());
return getLocalPostsObservable(userId, page);
})
私は理解していない何その理由
でFunction<List<Post>, List<Post>>
へ
posts
から
map()
で型キャスト同時に、第二の発現には型キャストはありません
:
throwable -> {
Log.d("rafael", throwable.getMessage());
return getLocalPostsObservable(userId, page);
}
キャストを削除してみましたか? 'findAll()'の戻り値の型は何ですか? – shmosel
@shmosel奇妙なことは、キャストを取り除いたときです。何も文句を言うことはありません。 'findAll()'は 'RealmResults'を返します。 –
コンパイラの型推論には、キャスティングコンテキストを提供することです。あなたが問題なくキャストを取り除くことができれば、これはそのようなケースではありませんが、ヒューリスティックなIntelliJのマクロがそのようなキャストを挿入するかどうかを決定するために使用する... – Holger