mon code Java7: i essayez avec flux code> +
plattmap code> +
carte code> +
+
+
Collectez CODE> P>
packagesName.stream().flatMap(packageName -> new Reflections(packageName, new SubTypesScanner(false)).getSubTypesOf(Step.class)).collect(...??
3 Réponses :
Le platmap code> nécessite une fonction qui renvoie un flux en tant que paramètre
Désolé, mon packagesName code> est un tableau de chaîne (je modifie ma question avec cette info)
Vous préférez stream.of (packagesName) code> ou
arrayes.stream (packagesName) code>? ou même résultat?
Vous pouvez utiliser bien sûr dans ce cas, vous pouvez également utiliser Arrays :: flux code> pour convertir
chaîne code> tableau sur
flux code> de chaînes puis utilisez
flux :: platmap < / CODE> et collectez-vous à
SET CODE> UTILISER
collectors.toset code>
: flux.of code> au lieu de
arrayes.stream code>. p> p>
Vous préférez stream.of (packagesName) code> ou
arrayes.stream (packagesName) code>? ou même résultat?
Dans ce cas, ce sera le même parce que stream.of code> appels
arranges.stream code> en dessous. Pour les matrices non primitives, il est identique, la différence serait visible si vous vouliez passer par exemple
int [] code> - tableau de type primitif.
Ne pas avoir accès à Step.class, tout comme illustration!
import com.google.common.collect.ImmutableList; import org.reflections.Reflections; import org.reflections.scanners.SubTypesScanner; import java.util.Collection; import java.util.Set; import java.util.stream.Collectors; public class SO58133558 { public static void main(String[] args) throws Exception{ final Set<Class<?>> result = ImmutableList.of("java.sql","java.lang").stream(). map(packageName -> { return new Reflections(packageName, new SubTypesScanner(false)). getSubTypesOf(Object.class); }).flatMap(Collection::stream).collect(Collectors.toSet()); System.out.println(result); } }
Pourquoi avez-vous changé de code de travail?
Est-ce que
de nouvelles réflexions (p ...) code> renvoie une collection code>?
Est-il possible d'appliquer le flux directement avec une matrice? Je suppose que vous devez les convertir en premier. Et je suppose que votre deuxième syntexte a raison d'ajouter une collection.Toset () à l'intérieur de collection ().
@Kayaman, vous devez vivre avec votre temps et utiliser les nouvelles fonctionnalités de la langue Java.
@sgrillon pour le nouveau code, oui. Il n'est pas nécessaire de convertir des boucles en ruisseaux simplement parce qu'ils ont été introduits. Ce n'est pas un remplaçant, c'est un ajout. Si vous aviez une base de code hérité qui utilisait
vecteur code>, je doute que vous commenciez pas à les convertir en arraylist
code> partout (ou voulez-vous?).