我正在开发一个应用程序,其中给定项目的所有性能值都是基元。但是,现在有可能在将新数据添加到系统时这些值之一 - 收入 - 不可用。在这些情况下,我们可以简单地将收入的值存储/显示为 0.00
但是,我们现在还希望能够在以后添加这些缺失的数据(但如果存在,则不要覆盖数据)。在将 0.00 添加到数据库时,没有添加标志来指示收入是否实际可用,对我来说,将收入从原始类型 double 更改为盒装原始 Double 并允许 NULLS 用于数据库中的收入列似乎很明显。
然而,在应用程序中有多个地方调用 getRevenue(),并对值执行数学运算。显然,现在 getRevenue() 有可能返回 null 可能会导致重大问题。正如我所提到的,在不存在任何价值的情况下,我们非常乐意将收入显示为 0.00。
因此,一个明显的解决方案似乎是更新 getRevenue() 方法以返回值,或者在值为 null 的情况下返回 0.00。并添加一个新方法 getRevenueDB(),它返回 Revenue 的真实值,包括 null。只有在访问要添加到数据库的值时才会调用此方法。
这似乎是一种解决方案?它应该工作,而且很快。但这似乎是一个非常肮脏的解决方案,有更好的选择吗?
非常感谢所有评论!