Forme courte pour Java si la déclaration
Je sais qu'il existe un moyen pour écrire un Java if
déclaration en la forme courte.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Personne ne sait comment écrire la forme courte pour les plus de 5 lignes en une seule ligne?
- google opérateur ternaire en java 🙂
- Je suppose que vous avez obtenu votre
if
logique dans le mauvais sens. if (city.getName()!=null){name = city.getName();}else{name="N/A"}
- Il y a trois espaces, vous pouvez le supprimer. 😉
if (city.getName()!= null) name = city.getName(); else name="N/A";
Vous devez vous connecter pour publier un commentaire.
Utiliser l'opérateur ternaire:
Je pense que vous avez les conditions de l'arrière - si c'est null, vous voulez que la valeur "N/A".
Que si la ville est null? Votre code *frappe le lit dans cette affaire. J'aimerais ajouter une autre vérification:
name = city.getName() == null ? "N/A" : city.getName();
name = city.getName()==null ? "N/A" : city.getName()
String cityName = city.getName();
jeter unNullPointerException
sicity == null
? J'avais donc dire que votre moyen de la solution est certainement le meilleur (PS et j'approuve le "inutiles" entre parenthèses! Les gens ont besoin de se rappeler que 99% de codage est de communiquer avec d'autres personnes (et votre soi futur), pas le compilateur - sinon, nous serions utilisation de c!)La façon de le faire est avec l'opérateur ternaire:
Cependant, je crois que vous avez une erreur dans votre code ci-dessus, et de vous dire:
Pour éviter l'appel de
.getName()
deux fois je voudrais utilisercity.setName(null)
. Votre réponse parfaitement poignées.En Java, vous pourriez écrire:
Réglage d'une seule variable à l'un des deux états basés sur un seul condition est d'une utilisation courante de si-d'autre qu'un raccourci a été créé pour cela, l'opérateur conditionnel, ?:. À l'aide de l'opérateur conditionnel vous pouvez réécrire l'exemple ci-dessus dans une seule ligne, comme ceci:
(a > b) ? a : b; est une expression qui retourne une valeur sur deux, a ou b. La condition (a > b), est testé. S'il est vrai que la première valeur, une, est renvoyé. Si elle est fausse, la deuxième valeur, b, est renvoyé. Selon la valeur retournée est dépendante de la condition de test, a > b. La condition peut être n'importe quelle expression qui renvoie une valeur booléenne.
dans java 8:
Je suis toujours à oublier la façon d'utiliser le
?:
opérateur ternaire. Ce supplément réponse est un rappel rapide. C'est un raccourci pourif-then-else
.où
()
détient leif
?
signifiethen
:
signifieelse
C'est le même que
Vous pouvez écrire
if, else if, else
déclarations sous forme de court. Par exemple:Cette forme courte de:
tout d'abord la condition
(city.getName() == null)
est cochée. Si oui, alors"N/A"
est attribué à un nom ou tout simplementname="N/A"
sinon la valeur decity.getName()
est attribué à un nom, c'est à direname=city.getName()
.Choses à regarder ici:
(city.getName() == null)?
. Ici, le point d'interrogation est à droite après la condition. Facile à voir/lire/devine même!:
) et de la valeur du droit de colon(a) la valeur à gauche de la virgule est attribué lorsque la condition est vraie, sinon, la valeur du droit de colon est affectée à la variable.
voici une référence: http://www.cafeaulait.org/course/week2/43.html
voici une ligne de code
ici est un exemple de la façon dont il fonctionne, exécutez le code ci-dessous dans le fichier js et comprendre le résultat. Cette
("Data" != null)
est la condition que nous ne normalif()
et"Data"
de l'état lorsque cette condition est devenu vrai. cette" : "
agir que d'autre et"N/A"
de l'état pour d'autre condition. Espérons que cela vous aide à comprendre la logique.JS:
Utiliser org.apache.commons.lang3.StringUtils:
Simple & clair:
version longue:
ou comment je l'utilise pour être clair pour les autres lecteurs de code:
Syntaxe:
Donc, dans votre code, vous pouvez le faire comme ceci:
SUPPLÉMENTAIRE: pour les curieux
Dans certaines langues, basée à
JAVA
commeGroovy
, vous pouvez utiliser cette syntaxe:Vous pouvez le faire dans
Groovy
parce que si vous demandez à cette condition:De sorte que l'opérateur
?:
affecter la valeur retournée par l'état. Dans ce cas, la valeur decity.getName()
si ce n'est pasnull
.Vous pouvez utiliser l'opérateur ternaire en java.
Syntaxe:
Donc, dans votre code, vous pouvez le faire comme ceci,
Pour plus d'info, vous pouvez consulter cette ressource.