你将如何遍历 retrolambda 中的列表?
How would you iterate through a list in 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 一起工作?
我需要遍历返回的列表结果并添加一个视图。
如有任何建议,我们将不胜感激。
我建议使用 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 种流方法 takeWhile / dropWhile and all other Java 9 enhancements (especially in Optional and Collectors) and optimizations. You can find the API doc here。
我有以下代码
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 一起工作? 我需要遍历返回的列表结果并添加一个视图。
如有任何建议,我们将不胜感激。
我建议使用 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 种流方法 takeWhile / dropWhile and all other Java 9 enhancements (especially in Optional and Collectors) and optimizations. You can find the API doc here。