Partage
  • Partager sur Facebook
  • Partager sur Twitter

petit problème urgent

    27 avril 2016 à 21:47:57

    bonsoir !

    j'ai un problème avec mon accesseur pour renvoyer un tableau: voilà mon code: 

    public Passager[] getListePassager(){
                return this.listePassager;
        }

    sauf que cela me renvoie : [LPassager;@5b7b3c3e

    merci d'avance :)

    -
    Edité par Mylène04 27 avril 2016 à 21:48:20

    • Partager sur Facebook
    • Partager sur Twitter
      27 avril 2016 à 21:53:26

      Bonsoir.

      Le problème ne vient pas de ton accesseur (quoique le mot "this" est de trop, mais après préférence personnelle).

      Si tu essaie d'afficher ton tableau directement, tu ne réussira qu'à afficher l'adresse mémoire de ce dernier. Donc le problème est dans la conception. Il te faut savoir ce que tu veut faire avec ton tableau et utiliser les bonnes méthodes pour cela.

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        27 avril 2016 à 23:03:46

        Salut,

        Si tu essaie d'afficher ton tableau directement, tu ne réussira qu'à afficher l'adresse mémoire de ce dernier. Donc le problème est dans la conception. Il te faut savoir ce que tu veut faire avec ton tableau et utiliser les bonnes méthodes pour cela.

        Oui, je suppose qu'il/elle voulait un résultat équivalent à un print_r Seulement, il n'y a pas d'équivalents officiels en Java, il faudra passer par des petites bricoles. ^^

        • Partager sur Facebook
        • Partager sur Twitter
          28 avril 2016 à 8:45:27

          Mylène04 a écrit:

          [LPassager;@5b7b3c3e

          Ceci est la valeur du toString() d'un tableau.

          Ce n'est pas l'adresse mémoire mais le hashCode() concaténé au nom de la classe : voir javadoc de Object::toString()

          Pour afficher les éléments il faut parcourir le tableau.

          • Partager sur Facebook
          • Partager sur Twitter
          Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
            28 avril 2016 à 8:54:30

            Bonjour,

            Quand tu veux afficher les éléments d'un tableau, tu ne peux pas le faire directement avec System.out.println(tab). Il faut afficher tous ses éléments un par un. En général, on fait ça avec une boucle for-each.

            EDIT : Avec Java 8, on doit même pouvoir faire ça en une instruction).

            System.out.println(Arrays.stream(monTableau)
                                     .map(Object::toString)
                                     .collect(Collectors.joining(", ")));



            -
            Edité par brubru777 28 avril 2016 à 9:08:34

            • Partager sur Facebook
            • Partager sur Twitter
              28 avril 2016 à 9:29:55

              brubru777 a écrit:

              EDIT : Avec Java 8, on doit même pouvoir faire ça en une instruction).

              System.out.println(Arrays.stream(monTableau)
                                       .map(Object::toString)
                                       .collect(Collectors.joining(", ")));
              Arrays.stream(monTab)
                    .forEach(System.out::println)

              C'est plaisant :zorro:

              • Partager sur Facebook
              • Partager sur Twitter
              Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
                28 avril 2016 à 11:09:49

                Je me doutais qu'il y avait plus court.

                Je m'habitue peu à peu à Java 8 mais je manque encore de pratique. Merci Pinguet. :)

                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  28 avril 2016 à 11:30:56

                  Pinguet62 a écrit:

                  brubru777 a écrit:

                  EDIT : Avec Java 8, on doit même pouvoir faire ça en une instruction).

                  System.out.println(Arrays.stream(monTableau)
                                           .map(Object::toString)
                                           .collect(Collectors.joining(", ")));
                  Arrays.stream(monTab)
                        .forEach(System.out::println)

                  C'est plaisant :zorro:

                  Chouette, j'étais même pas au courant que l'on pouvait faire ça aussi simplement. Et quand je pense que certains tournent encore avec java 6... :D

                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 avril 2016 à 12:01:50

                    Songbird239 a écrit:

                    Pinguet62 a écrit:

                    brubru777 a écrit:

                    EDIT : Avec Java 8, on doit même pouvoir faire ça en une instruction).

                    System.out.println(Arrays.stream(monTableau)
                                             .map(Object::toString)
                                             .collect(Collectors.joining(", ")));
                    Arrays.stream(monTab)
                          .forEach(System.out::println)

                    C'est plaisant :zorro:

                    Chouette, j'étais même pas au courant que l'on pouvait faire ça aussi simplement. Et quand je pense que certains tournent encore avec java 6... :D

                    Quand tu combines les lambda (pour les classes anonymes), l'API collector (map/filter/reduce simples et performants), les méthodes par défaut, du Java 8 tu te retrouves avec un code quand même différent des versions précédentes. (voir ma signature)
                    Par dessus tu peux ajouter les évolutions de Java 7 sur les multi-catch, le try-with-resources, Non blocking I/O, et tu te retrouves avec de jolis choses.
                    Mais tout ça n'est pas dans le cours...
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)

                    petit problème urgent

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown