java - 你将如何遍历 retrolambda 中的列表?

标签 java android retrolambda

我有以下代码

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 一起工作? 我需要遍历返回的列表结果并将其添加到 View 。

如有任何建议,我们将不胜感激。

最佳答案

我建议使用 streamsupport作为 Java 8 流部分的附加库:

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 .

关于java - 你将如何遍历 retrolambda 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321423/

相关文章:

java - 在人群区域录制音频时,如何使用 Java 消除背景噪音?

java - 如何在JasperReports中映射键值?

android - Android 中单行的 TextView 和 EditText?

Java 构建错误,没有来源或位置

java - 如何使用 @WorkerThread 注释 lambda?

android - 为什么这个方法调用不能转换成lambda?

java - 如何加粗文本Android String的一部分

java - 二叉搜索树中左子节点的和

android - ClusterManager Google Map Utility V2 遍历集群

android - Android L 相机中的手动 ISO 控制和变焦控制 (android.hardware.Camera2)