Est-il possible d'utiliser le Java 8 Flux d'API d'API Android < 24?
J'ai lu ce post ici. Mais encore, je ne peut pas exécuter de code contenant Java 8 Flux fonctionnalités de l'API comme suit sur minSdkVersion < 24.
List<Car> newCars = cars.stream()
.filter(s -> s.getColor().equals("red"))
.collect(Collectors.toList());
Ce n'est pas exécutée en raison du message d'erreur
Appel nécessite l'API de niveau 24 (actuelle est à 15 min): java.util.Collection#flux
Ainsi, quelqu'un connais une solution?
- non, vous ne pouvez pas utiliser le java flux ci-dessous api 24. il y a 3rd party bibliothèques qui mettent en œuvre la même chose, bien que le travail
- J'ai une petite bibliothèque qui fait des choses similaires pour le bas-api: github.com/smaspe/FunctionalIterables
- Voir stackoverflow.com/questions/39265004/... et stackoverflow.com/questions/39039566/... pour les mêmes questions (et réponses).
- Vous peut l'utilisation des expressions lambda et de la méthode des références à l'aide de la new Jack compilateur ciblant Android dès de pain d'épice. Ce que vous vous ne pouvez pas ont au-dessous des SDK 24 sont par défaut / statique de l'interface des méthodes et Java 8 des Api spécifiques tels que le Flux de l'API.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser Java8 cours d'eau sur l'API de niveau < 24.
Cependant, il ya certaines bibliothèques backport certains des flux de fonctionnalités
https://github.com/aNNiMON/Lightweight-Stream-API
https://github.com/konmik/solid
https://sourceforge.net/projects/streamsupport/ (mentionné par @sartorius en commentaire)
[Mise à jour de k3b 2019-05-23]
https://github.com/retrostreams/android-retrostreams est un spin-off de streamsupport qui prend avantage d'Android Studio 3.x D8 /desugar de la chaîne de la capacité à utiliser l'interface par défaut & méthodes statiques à travers le fichier Jar limites. Il y a aussi des liens vers d'autres android-retroXXX c'est à dire pour CompletableFuture.
Depuis la version 8.2 de DexGuard il est possible d'utiliser le Java 8 API de flux aussi sur les appareils Android < API de niveau 24. Pour ce faire, on doit inclure le streamsupport bibliothèque et DexGuard se traduira tous Java 8 flux des appels d'API de la bibliothèque fournis. Aucun traitement supplémentaire n'est nécessaire, et les développeurs peuvent simplement le code à l'aide du Java 8 API de flux. Les dépendances sont également traduits automatiquement, de sorte qu'il est possible d'utiliser des bibliothèques de Java 8 dispose également de développement Android.
Cette fonctionnalité sera également inclus dans ProGuard dans un avenir proche, restez à l'écoute.
Edit: Proguard 6.1.0 pour lesquels il existe déjà une version beta prend en charge le portage de Java 8 flux et l'heure de l'API.
Créer une Interface.
Créer une Méthode de Filtre.
À L'Aide De Code