Je sais qu'il existe un moyen d'écrire une if
déclaration Java sous une forme courte.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Quelqu'un sait-il comment rédiger le formulaire abrégé des 5 lignes ci-dessus en une seule ligne?
if
mal tourné votre logique.if (city.getName()!=null){name = city.getName();}else{name="N/A"}
if (city.getName()!= null) name = city.getName(); else name="N/A";
Réponses:
Utilisez l'opérateur ternaire:
Je pense que vous avez les conditions à l'envers - si elle est nulle, 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:
la source
name = city.getName() == null ? "N/A" : city.getName();
name = city.getName()==null ? "N/A" : city.getName()
String cityName = city.getName();
unNullPointerException
sicity == null
? Je dirais donc que votre solution intermédiaire est certainement la meilleure (PS et j'approuve les parenthèses `` inutiles ''! Les gens doivent se rappeler que 99% du codage communique avec d'autres personnes (et votre futur soi), pas avec le compilateur - sinon nous utiliserions c!)Pour éviter d'appeler
.getName()
deux fois, j'utiliseraisla source
city.setName(null)
. Votre réponse gère parfaitement cela.La façon de le faire est avec l'opérateur ternaire:
Cependant, je crois que vous avez une faute de frappe dans votre code ci-dessus, et vous voulez dire:
la source
En Java, vous pourriez écrire:
Définir une variable unique sur l'un des deux états sur la base d'une seule condition est une telle utilisation courante de if-else qu'un raccourci a été conçu pour elle, l'opérateur conditionnel,?:. En utilisant l'opérateur conditionnel, vous pouvez réécrire l'exemple ci-dessus sur une seule ligne comme ceci:
(a> b)? un B; est une expression qui renvoie l'une des deux valeurs, a ou b. La condition (a> b) est testée. S'il est vrai, la première valeur, a, est renvoyée. S'il est faux, la deuxième valeur, b, est renvoyée. La valeur renvoyée dépend du test conditionnel, a> b. La condition peut être n'importe quelle expression qui renvoie une valeur booléenne.
la source
en java 8:
la source
J'oublie toujours comment utiliser l'
?:
opérateur ternaire . Cette réponse supplémentaire est un rappel rapide. C'est un raccourci pourif-then-else
.où
()
détient leif
?
veux direthen
:
veux direelse
C'est la même chose que
la source
Vous pouvez écrire des
if, else if, else
déclarations sous forme abrégée. Par exemple:Il s'agit d'une forme abrégée de:
la source
Syntaxe:
Donc, dans votre code, vous pouvez faire comme ceci:
EXTRA: pour les curieux
Dans certaines langues basées sur
JAVA
likeGroovy
, vous pouvez utiliser cette syntaxe:L'opérateur
?:
attribue la valeur renvoyée par la variable que nous demandons. Dans ce cas, la valeur decity.getName()
sinonnull
.la source
la source
tout d'abord l'état
(city.getName() == null)
est vérifié. Si oui, alors"N/A"
est assigné au nom ou simplementname="N/A"
ou bien la valeur decity.getName()
est assignée au nom, iename=city.getName()
.Choses à regarder ici:
(city.getName() == null)?
. Ici, le point d'interrogation est juste après la condition. Facile à voir / lire / deviner même!:
) et la valeur à droite de deux points (a) la valeur à gauche de deux points est affectée lorsque la condition est vraie, sinon la valeur à droite de deux points est affectée à la variable.voici une référence: http://www.cafeaulait.org/course/week2/43.html
la source
voici un code de ligne
voici un exemple de fonctionnement, exécutez le code ci-dessous dans le fichier js et comprenez le résultat. C'est une
("Data" != null)
condition comme nous le faisons normalementif()
et"Data"
c'est une déclaration lorsque cette condition est devenue vraie. ceci" : "
agit comme autre chose et"N/A"
est une déclaration de condition else. J'espère que cela vous aidera à comprendre la logique.la source
Utilisez org.apache.commons.lang3.StringUtils:
la source
Simple et clair:
version longue:
ou comment je l'utilise pour être clair pour les autres lecteurs de code:
la source
Vous pouvez utiliser l'opérateur ternaire en java.
Syntaxe:
Donc, dans votre code, vous pouvez faire comme ça,
Pour plus d'informations, vous pouvez consulter cette ressource.
la source
la source