Est-il possible d'utiliser l'API Java 8 Stream sur l'API Android <24?


J'ai lu ce post - ici. Mais je ne peux toujours pas exécuter de code contenant des fonctionnalités de l'API Java 8 Stream comme les suivantes sur minSdkVersion

List<Car> newCars = cars.stream()
                        .filter(s -> s.getColor().equals("red"))
                        .collect(Collectors.toList());

Cela ne s'exécute pas en raison du message d'erreur

L'appel nécessite un niveau d'API 24 (la minute actuelle est 15): java.util.Collection # flux

Alors quelqu'un connaît-il une solution?

Author: Community, 2016-09-15

2 answers

Vous ne pouvez pas utiliser les flux Java8 au niveau API

Cependant, certaines bibliothèques rétroportent certaines fonctionnalités de flux

Https://github.com/aNNiMON/Lightweight-Stream-API

Https://github.com/konmik/solid

Https://sourceforge.net/projects/streamsupport/ (mentionné par @sartorius dans le commentaire)

 40
Author: Robert Estivill, 2016-09-16 09:07:38

Depuis la version 8.2 de DexGuard, il est possible d'utiliser l'API Java 8 streams également sur les appareils Android streamsupport et DexGuard traduira tous les appels d'API de flux Java 8 vers la bibliothèque fournie. Aucune manipulation supplémentaire n'est nécessaire, et les développeurs peuvent simplement coder en utilisant l'API Java 8 streams fournie. Les dépendances sont également traduites automatiquement, il est donc possible d'utiliser des bibliothèques avec des fonctionnalités Java 8 aussi pour le développement Android.

Cette fonctionnalité sera également incluse dans ProGuard dans un proche avenir, restez à l'écoute.

 8
Author: T. Neidhart, 2018-06-19 14:11:30