私はforEach
ループ内でアクセスする必要がある特定のオブジェクトのプロパティを返す必要があります。基本的にはList<UserLocation>
のプロパティを持ち、UserLocation
オブジェクトの内部にオブジェクトがあり、location_id
というプロパティを持つLocation
オブジェクトです。 user
オブジェクトのstore_id
が、UserLocation
オブジェクトのstore_id
と一致する場合は、location_id
を取得する必要があります。しかし、私が得ている問題は、ラムダ式の中で使われている変数が最終的に、あるいは効果的に最終的なものでなければならないということです。以下のコードを参照してください。ループ内からプロパティを返すJava 8 forEach
User user = getUser(request);
Integer locationId;
user.getUserLocations().forEach(ul -> {
if (ul.getStoreId() == user.getStoreId()) {
locationId= ul.getUserLocations().getLocationId();
}
});
ご迷惑をおかけして申し訳ございません。
[ラムダ式で使用される変数の可能な重複は、最終的に、または効果的に最終的なものでなければなりません](http://stackoverflow.com/questions/34865383/variable-used-in-lambda-expression-should-be-final-or-実質的に最終的な) –
Javaはクロージャを残念ながら持っていないので、コンパイルエラーが発生します。 – randomUser56789