0
votes

Comment vérifier Boolean pour null?

Je souhaite ajouter une vérification nulle à mon opérateur ternaire qui vérifie une Boolean isValue :

public String getValue() {
    return isValue ? "T" : "F";
}

Ma tâche est:

Que faire si le booléen (objet) renvoie null? Ajoutez une vérification booléenne et retournez "" (chaîne vide au cas où elle serait nulle).

Notez que isValue est un Boolean , pas boolean.


5 commentaires

isValue est-il un booléen primitif? Si c'est le cas, il ne sera jamais nul. De plus, le ternaire est a? b: c


Pour développer ce que @Compass a dit, les types primitifs ne peuvent pas être nuls, uniquement des objets tels que Boolean ou String , pas int ou boolean . Les types primitifs héritent des valeurs par défaut, par exemple int est par défaut 0 .


@Nexevis c'est un objet (booléen)


@learn N Rock Je vous recommande de modifier votre question avec ces informations, vous utilisez spécifiquement le terme boolean qui implique le type primitif.


Merci @Nexev est mon erreur


3 Réponses :


7
votes

Un opérateur terniaire a la syntaxe suivante:

final String result;
if (isValue == null) {
    result = "";
} else if (isValue) {
    result = "T";
} else {
    result = "F";
}
return result;

trueValue est renvoyé lorsque l'expression est évaluée à true et falseValue quand ce n'est pas le cas.

Si vous voulez ajouter une vérification nulle de telle sorte que lorsqu'un Boolean isValue est null alors la méthode retourne "" , ce n'est pas très lisible avec un opérateur terniaire:

String getValue() {
    return isValue == null ? "" : (isValue ? "T" : "F");
}

Une instruction comme celle-là pourrait être mieux exprimé avec des instructions if . Le corps de la méthode deviendrait

result = expression ? trueValue : falseValue;


1 commentaires

public String getValue () {if (isValue! = null) {return isValue? "T"? "F" ; } else {return ""; }}



3
votes

Vous utilisez la syntaxe incorrecte pour l'opérateur ternaire comme indiqué dans les commentaires qui devrait être isValue? "T": "F" . Je suggère d'utiliser une solution qui mélange l'opérateur ternaire avec une instruction if standard pour vérifier une valeur null .

Voici à quoi ressemble cette solution: p >

public String getValue() {
    if (isValue == null) {
        return "";
    }
    return isValue ? "T" : "F";
}

Cela vérifiera null avant toute autre chose et renverra une chaîne vide si la valeur est null code >. Sinon, il vérifiera la valeur normalement et retournera la valeur String de T ou F pour true ou false respectivement.


1 commentaires

Merci, j'ai ajouté mon commentaire pour la réponse ci-dessus qui correspond à la vôtre @Nexevis



2
votes

Vous pourriez faire

return Optional.ofNullable(isValue).map(t -> t ? "T": "F").orElse("");


1 commentaires

J'adore la propreté de cela.