Android でretrolambdaを使用するようにいくつかのコードを更新しています。コードはほとんど動作しますが、Android Studio 2.1 IDE は以前は OK だったコードにフラグを立てているようです:
@WorkerThread void expensiveBackgroundOperation()
{
// Stuff.
}
@UiThread void updateSomeStuffOld()
{
AsyncTask.execute(new Runnable() {
@Override public void run()
{
expensiveBackgroundOperation();
}
});
}
@UiThread void updateSomeStuffNew()
{
AsyncTask.execute(() -> expensiveBackgroundOperation());
}
次のスクリーンショットは、古い実行可能な構文が正しく推論されていることを示しています (または、推論されておらず、run()
注釈が内部で適切に機能するには、メソッドに @WorkerThread で注釈を付ける必要があります…) が、retrolambda 構文バージョンでは、メソッドは次のように推論されますUI で実行しますが、これは次のものではありません。
注釈でラムダに注釈を付けるにはどうすればよい@WorkerThread
ですか? いくつかの場所に配置しようとしましたが、IDE を満足させることができないようです。