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?
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)
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.