Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question méthode equals de la classe String en Java

    28 janvier 2012 à 1:20:23

    Bonjour,

    D'habitude on utilise la méthode equals de cette manière ci :

    String nom = "Loic";
    if(nom.equals("Loic"))
      System.out.print("Votre nom est bien Loic");
    


    Mais j'ai trouvé dans un livre un exemple de code qui utilise la méthode equals d'une autre manière dont je ne comprends pas trop la logique puisque equals ne fait plus partie de sa classe String...

    if(nom == null || "".equals(nom))
      throw new ValidationException("Nom incorrect");
    


    Donc si vous pouvez m'expliquer, ça serait sympa.

    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      28 janvier 2012 à 4:42:07

      Salut parata,

      En fait ceci :

      "".equals(nom);
      


      est équivalent à

      String chaine = "";
      chaine.equals(nom);
      


      La jvm à partir de "" fabrique un object String et ensuite appelle la méthode de la classe String.

      Salutation.


      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        28 janvier 2012 à 11:17:42

        on utilise souvent l'écriture "...".equals(MaVariableString) pour éviter que si maVariableString est null, cela ne déclenche une nullPointerException:

        String s = null;
        s.equals("test"); // exception
        "test".equals(s); //pas d'exception et ca renvoie bien false.
        
        • Partager sur Facebook
        • Partager sur Twitter
          28 janvier 2012 à 13:11:26

          Merci pou vos réponses.

          Donc ce code :

          if(nom == null || "".equals(nom))
            throw new ValidationException("Nom incorrect");
          


          vérifie que le nom n'est pas nul et qu'il n'est pas vide.
          • Partager sur Facebook
          • Partager sur Twitter
            28 janvier 2012 à 14:15:18

            Citation : SpaceFox

            Certains appellent cette technique le "Yoda test".



            Heu ça veut dire quoi ? XD
            • Partager sur Facebook
            • Partager sur Twitter
              28 janvier 2012 à 14:35:30

              Yoda met ses phrases à l'envers, là tu fais le test à l'envers :D
              • Partager sur Facebook
              • Partager sur Twitter

              Question méthode equals de la classe String en Java

              × 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