Bonjour,
J'ai le modèle ci-dessous :
Dans un controleur, j'ai la fonction ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 import java.nio.file.Path; public class Modele { public Modele(Path filePath) { System.out.println(filePath); } }
Lorsque je l'execute, le constructeur de Modele affiche bien le path des 406 fichiers recupérés dans la boucle et, après chaque fichier, j'ai bien le "OK" qui apparait et le code en-dessous est exécuté correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; private void myMenuFileStart() { try { boolean add; Stream<Path> streamFiles; Path startDir; List<Path> allFiles; List<Modele> mModele = null; startDir = Paths.get("/"); streamFiles = Files.walk(startDir) .filter(f -> f.getFileName().toString().endsWith("cfg")); allFiles = streamFiles.collect(Collectors.toList()); for (Path allFile : allFiles) { try { //add = mModele.add(new Modele(allFile)); new Modele(allFile); if (add) { System.out.println("ok"); } else { System.out.println("PAS OK !!!"); } } catch (Exception e) { } } } catch (Exception e) { } // Suite du code }
Lorsque je commente la construction du Modele (lignes 26 et 27) pour le mettre dans le List.add(), comme ci-dessous :
Et bien je n'ai ni le "OK", ni le "PAS OK !!!" qui apparait et en plus, il arrete l'exécution du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; private void myMenuFileStart() { try { boolean add; Stream<Path> streamFiles; Path startDir; List<Path> allFiles; List<Modele> mModele = null; startDir = Paths.get("/"); streamFiles = Files.walk(startDir) .filter(f -> f.getFileName().toString().endsWith("cfg")); allFiles = streamFiles.collect(Collectors.toList()); for (Path allFile : allFiles) { try { add = mModele.add(new Modele(allFile)); //new Modele(allFile); if (add) { System.out.println("ok"); } else { System.out.println("PAS OK !!!"); } } catch (Exception e) { } } } catch (Exception e) { } // Suite du code }
Il crée bien les 406 instances de Modele puisque le constructeur m'affiche bien les 406 path passés par la boucle mais je ne vois pas pourquoi le simple fait de faire un List.add() stoppe l'exécution du code.
J'imagine qu'une subtilité m'a échappé mais je n'arrive pas à trouver d'exemples qui correspondent à mon problème.
Vous remerciant par avance pour l'aide que vous pourrez m'apporter.
Partager