-1
votes

Migration Java 7 à Java 8 - Foreach and Addall dans un ensemble?

mon code Java7: xxx pré>

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


5 commentaires

Pourquoi avez-vous changé de code de travail?


Est-ce que de nouvelles réflexions (p ...) renvoie une collection ?


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 , je doute que vous commenciez pas à les convertir en arraylist partout (ou voulez-vous?).


3 Réponses :


1
votes

Le platmap nécessite une fonction qui renvoie un flux en tant que paramètre xxx


2 commentaires

Désolé, mon packagesName est un tableau de chaîne (je modifie ma question avec cette info)


Vous préférez stream.of (packagesName) ou arrayes.stream (packagesName) ? ou même résultat?



1
votes

Vous pouvez utiliser Arrays :: flux pour convertir chaîne tableau sur flux de chaînes puis utilisez flux :: platmap < / CODE> et collectez-vous à SET UTILISER collectors.toset : xxx

bien sûr dans ce cas, vous pouvez également utiliser flux.of au lieu de arrayes.stream .


2 commentaires

Vous préférez stream.of (packagesName) ou arrayes.stream (packagesName) ? ou même résultat?


Dans ce cas, ce sera le même parce que stream.of appels arranges.stream en dessous. Pour les matrices non primitives, il est identique, la différence serait visible si vous vouliez passer par exemple int [] - tableau de type primitif.



-1
votes

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);
  }
}


0 commentaires