225 votes

est-il un Java équivalent à la valeur null coalescence de l'opérateur (??) en C#?

Double Possible:
Comment obtenir la première valeur non nulle en Java?

Est-il possible de faire quelque chose de similaire à la suivante de code en Java

int y = x ?? -1;

en plus ??

174voto

Andrzej Doyle Points 52541

Malheureusement - pas. Le plus proche que vous pouvez faire est de:

int y = (x != null) ? x : -1;

Bien sûr, vous pouvez l'envelopper dans de la bibliothèque de méthodes si vous en sentez le besoin (il est peu probable de les couper sur la longueur), mais au niveau de la syntaxe niveau, il n'y a rien de plus succincte disponibles.

64voto

ColinD Points 48573

La goyave est une méthode qui a fait quelque chose de similaire appelé Objets.firstNonNull(T,T).

Integer x = ...
int y = Objects.firstNonNull(x, -1);

Il est plus utile lorsque vous avez quelque chose comme

int y = firstNonNull(calculateNullableValue(), -1);

car il vous permet d'économiser de soit en appelant le risque de coûter très cher méthode deux fois ou la déclaration d'une variable locale dans votre code pour faire référence à deux fois.

0voto

helloworld922 Points 4195

Primitifs en Java ne peut jamais être nulle, de sorte que la déclaration n'a pas de sens sur le plan conceptuel. Cependant, les classes wrapper (Entier, Caractère, etc), ainsi que toute autre classe instanciable peut être null.

Outre ce fait, il n'y a pas à court de main syntaxe pour une valeur nulle de coalescence de l'opérateur. Vous devez utiliser la forme développée.

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