J'utilise actuellement la bibliothèque Immuable pour générer objet JSON de mon application Web.Pourquoi nul immuable est découragé?
Regarder this chapitre, la première ligne dit:
L'utilisation d'attributs nullables est déconseillée.
Ma question est:
1) pourquoi? Quel est le problème avec un objet nul?
2) si je suis en utilisant une enveloppe d'objet thirdy et je ne sais pas si l'article est nul ou non, donc en utilisant le code constructeur de classage échouera:
MyImmutableWrapperObject
.builder().
.mobile(input.getMobile()) // don't know if null or not
.build();
Y at-il optimal Solution?
EDIT:
@JsonProperty("mobile")
public abstract Optional<String> mobile();
...
// composing builder
if (input.getMobile() != null)
builder.mobile(input.getMobile());
Le produit est JSON:
"mobile": {
"present": false
},
Comment puis-je supprimer complètement les champs vides?
J'ai lu this, mais il utilise gson.toJson qui renvoie un objet String qui n'est pas mon chemin souhaitable.
extérieurs post:
Je viens de découvrir que en option ne montre pas de valeur réelle, même si elle est présente, mais il n'affiche que la vraie/fausse valeur, donc je ne ont pas besoin.
donc un moyen possibile pourrait être aussi: Builder builder = ImmutableAccount \t \t \t \t .builder() if (entrée.getMobile()! = null) builder.mobile (entrée.getMobile()); return builder.build() –
@FabrizioStellato il pourrait être - oui. Il pourrait être juste dans votre cas de stocker un 'Optional.empty()' dans ce cas. Ou même pour le constructeur de faire quelque chose avec ce null à la place - cela dépend. – Eugene
Voir ma question EDITED –