如何在Retrolambda中迭代列表?

3
我有以下代码
List<Trailer> trailers = response.body().getResults();
trailers.stream().forEach(trailer -> {
    View reviewView = LayoutInflater.from(mContext).inflate(R.layout.trailer_list_item, null);
    ((TextView) reviewView.findViewById(R.id.movies_trailers_list)).setText(trailer.getName());
    LinearLayout linearLayout = (LinearLayout) mView.findViewById(R.id.movie_trailers);
    linearLayout.addView(reviewView);
});

有没有办法让这段代码与retrolambda一起工作?我需要遍历返回的列表结果并添加到视图中。
非常感谢您的建议。

请查看此链接:https://dev59.com/w10a5IYBdhLWcg3whI_W - Paulo Ribeiro
感谢您的帮助!我现在正在查看它。 - Strahinja Ajvaz
1个回答

4
我建议在Java 8流部分中使用streamsupport作为额外的库:
import java8.util.stream.StreamSupport;

StreamSupport.stream(trailers).forEach(trailer -> {
    View reviewView = LayoutInflater.from(mContext).inflate(R.layout.trailer_list_item, null);
    ((TextView) reviewView.findViewById(R.id.movies_trailers_list)).setText(trailer.getName());
    LinearLayout linearLayout = (LinearLayout) mView.findViewById(R.id.movie_trailers);
    linearLayout.addView(reviewView);
});

对于Java 8流代码所需的更改通常很小,并且(在大多数情况下)是机械化的。

它还具有额外的吸引力,因为它已经提供了新的Java 9 Stream方法 takeWhile / dropWhile 和所有其他Java 9增强功能(特别是Optional和Collectors)以及优化。您可以在此处找到API文档 here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接