On m'a posé cette question en entrevue. Lequel des suivants est préférable d'utiliser
MyInput.equals("Something");
Ou
"Something".equals(MyInput);
Merci
On m'a posé cette question en entrevue. Lequel des suivants est préférable d'utiliser
MyInput.equals("Something");
Ou
"Something".equals(MyInput);
Merci
J'irais pour
"Something".equals(MyInput);
dans ce cas, si MyInput est null
alors il ne jettera pas NullPointerException
Ici, nous sommes sûrs que l’objet sur lequel equals()
va invoquer est NOT NULL
.
Et si vous vous attendez à ce que NullPointerException
de votre code prenne une décision ou le jette / emballe, alors optez pour le premier choix.
Pour être le contrarian.... :)
La première ligne peut se bloquer si MyInput est nul, mais c'est juste un code-facilité de programmation (généralement avec une gueule de bois C) utiliser quand ils ne veulent pas d'affirmer que "MyInput" peut être null.
Si la deuxième option est utilisée, alors peut-être que cette ligne ne cause pas une exception NullPointerException, mais les lignes suivantes pourraient.
Je crois que c'est mieux de connaître l'état de vos variables, plutôt que de s'appuyer sur un code-construction qui soulage votre conscience.
Si vous voulez être un vrai malin, vous pouvez indiquer la possibilité que MyInput
soit une sous-classe spéciale de String ayant écrasé les equals
et hashcode
méthodes. Dans ce cas, la commande de la déclaration est d’une importance vitale.
Voici un exemple concret: si vous voulez comparer des chaînes contenant des nombres et que vous souhaitez que les zéros soient ignorés? Par exemple, Lecture1
serait égal à Lecture01
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.