294 votes

Forme courte pour l'instruction Java if

Je sais qu'il existe un moyen d'écrire une if sous forme abrégée.

 if (city.getName() != null) {
    name = city.getName();
} else {
    name="N/A";
}

Quelqu'un sait-il comment écrire le formulaire abrégé des 5 lignes ci-dessus en une seule ligne ?

563voto

duffymo Points 188155

Utilisez l'opérateur ternaire :

 name = ((city.getName() == null) ? "N/A" : city.getName());

Je pense que vous avez les conditions à l'envers - si c'est nul, vous voulez que la valeur soit "N/A".

Et si la ville est nulle ? Votre code * frappe le lit dans ce cas. J'ajouterais un autre chèque :

 name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());

48voto

Peter Lawrey Points 229686

Pour éviter d'appeler .getName() deux fois, j'utiliserais

 name = city.getName();
if (name == null) name = "N/A";

35voto

Sam Goldberg Points 2345

La façon de le faire est avec l'opérateur ternaire:

 name = city.getName() == null ? city.getName() : "N/A"

Cependant, je pense que vous avez une faute de frappe dans votre code ci-dessus, et vous voulez dire :

 if (city.getName() != null) ...

Prograide.com

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.

Powered by:

X