stream()方法在android中不起作用

时间:2016-06-16 08:48:25

标签: android android-studio collections lambda java-8

如何将此语句从经典java转换为android

Collection<Integer> p1;   
int sum = p1.stream().mapToInt(Integer::intValue).sum();

我将Java 8和lambda集成到我的android应用程序中,但它仍然不起作用。在android中找不到方法stream()。

你能帮帮我吗?

2 个答案:

答案 0 :(得分:5)

您可以使用streamsupport库将流API反向移植到Java 6/7,该库可用于Android开发,并支持所有设备。

Afaik,这个库完全向后移植Java 8中的原始实现,并使其在单独的包中提供(前缀为java8。)。 Collection接口上添加的默认方法(例如#stream(),#forEach())可以从单独的实用程序类中获得,例如Iterables或StreamSupport。

答案 1 :(得分:0)

Stream API包含在最新版本的Android 7.0 SDK Platform(API 24)中:

public interface Collection<E> extends Iterable<E> {
    // .. redacted
    default Stream<E> stream() { .. }
}

请注意,要使用它,您必须将minSdkVersion设置为24。