Conséquences de la modification d'une primitive à une primitive en boîte dans une application Java

StackOverflow https://stackoverflow.com/questions/4959477

  •  12-11-2019
  •  | 
  •  

Question

Je travaille sur une application dans laquelle toutes les valeurs de performance pour un élément donné sont des primitives. Cependant, il est maintenant possible que l'une de ces valeurs - les revenus - ne soit pas disponible lors de l'ajout de nouvelles données au système. Dans ces cas, nous sommes d'accord avec le simple stockage / afficher la valeur des revenus à 0,00

Cependant, nous voulons maintenant également pouvoir ajouter ces données manquantes à une date ultérieure (mais ne pas écraser les données si elles sont présentes). Plutôt que d'ajouter des drapeaux pour indiquer si les revenus étaient réellement disponibles lorsque 0,00 a été ajouté à la base de données, il me semble évident de changer les revenus du double de type primitif à un double primitif en boîte et de permettre Nulls pour la colonne de revenus dans la base de données.

Il existe différents endroits dans l'application où getRevenue () est appelé cependant, et les opérations mathématiques sont effectuées sur la valeur. De toute évidence, avoir le potentiel pour getRevenue () de retourner null pourrait causer des problèmes majeurs. Comme je l'ai mentionné cependant, nous sommes parfaitement heureux de présenter les revenus comme ayant une valeur de 0,00 dans les cas où il n'y a pas de valeur présente.

Ainsi, il semble qu'une solution évidente serait de mettre à jour la méthode getReveue () pour renvoyer la valeur, ou 0,00 dans le cas de la valeur nul. Et pour ajouter une nouvelle méthode getRevenedB () qui renvoie la véritable valeur des revenus, y compris null. Cette méthode ne serait appelée que lors de l'accès à la valeur à ajouter à la base de données.

Comment cela semble-t-il comme une solution? Cela fonctionne, et est rapide. Mais cela semble-t-il une solution horriblement sale, pour laquelle il existe une meilleure option disponible?

Tous les commentaires sont très appréciés!

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top