Java: Ternaire avec pas de retour. (Pour l'appel de méthode)
Je me demandais si il était possible de faire un ternaire opération, mais sans retourner quoi que ce soit.
Si il n'est pas possible en Java est-il possible dans d'autres langues, si oui, lesquels s'appliquent?
name.isChecked() ? name.setChecked(true):name.setChecked(false);
- C'est possible en JavaScript, par exemple ici: stackoverflow.com/a/6260001/320399
Vous devez vous connecter pour publier un commentaire.
Non, vous ne pouvez pas. Mais quel est l'intérêt de ce sur une
if-else
déclaration? Êtes-vous vraiment en essayant de sauver de 7 caractères?ou si vous préférez, le mauvais style:
Jamais l'esprit le fait que vous pouvez le faire (dans ce cas):
Le point de le ternaire ou "conditionnel" de l'opérateur est d'introduire des instructions conditionnelles dans un expression. En d'autres termes, ce:
est destiné à être un raccourci pour cette:
Si il n'y a pas de valeur en cours de production, l'opérateur conditionnel n'est pas un raccourci.
Non, il n'est pas possible:
Les 2e et 3e opérandes doivent être non-nulle expressions; c'est à dire qu'ils doivent produire de la valeur réelle.
Un ternaire expression est une expression, et ne peut pas être utilisé comme une déclaration.
Si vous vraiment, voulez vraiment utiliser un ternaire expression, mais pas utiliser la valeur de l'expression, alors la chose la plus simple est d'attribuer la valeur d'une variable muette, et d'ajouter une annotation pour supprimer l'avertissement à propos de la variable n'est pas utilisée.
Mais c'est une bonne idée d'utiliser une plaine
if
déclaration.Je suis un peu rouillé, mais je crois que C, C++ et Perl permettent tous arbitraire des expressions pour être utilisé dans des endroits où leurs valeurs ne sont pas utilisés.
Parfois, vous pouvez utiliser ternaire opération sur des arguments de méthode pour résoudre votre demande.
Par le chemin, la meilleur solution pour votre problème est
Vous devez retourner une valeur et il ne fonctionnera pas si vous voulez d'agir comme un vide, une méthode qui effectue une action sans retourner une valeur.
Espère que cela aide...
En java code suivant n'est pas possible:
par exemple, vous ne pouvez pas compiler suivantes snipet code :
vous atteindre erreur de compilation suivante:
(your-condition) ? (true-statements) : (false-statements)
est possible en java, mais elle doit retourner une valeur (il ne peut pas être nulle) et vous devez l'affecter à une variable.