gpt4 book ai didi

java - 在 Java 应用程序中将原语更改为盒装原语的后果

转载 作者:行者123 更新时间:2023-11-30 05:06:25 25 4
gpt4 key购买 nike

我正在开发一个应用程序,其中给定项目的所有性能值都是基元。但是,现在向系统添加新数据时,这些值之一(收入)可能不可用。在这些情况下,我们只需将 Revenue 值存储/显示为 0.00

但是,我们现在还希望能够在以后添加这些缺失的数据(但不覆盖数据(如果存在))。在我看来,将 Revenue 从原始类型 double 更改为装箱原始 Double 并允许数据库中 Revenue 列为 NULL 是显而易见的,而不是添加标志来指示 Revenue 在将 0.00 添加到数据库时是否实际可用。/p>

但是,应用程序中的多个位置都会调用 getRevenue(),并对值执行数学运算。显然,现在 getRevenue() 返回 null 的可能性可能会导致重大问题。正如我所提到的,我们非常乐意在不存在任何值的情况下将收入显示为 0.00。

因此,似乎一个明显的解决方案是更新 getRevenue() 方法以返回值,或者在值为 null 的情况下返回 0.00。并添加一个新方法 getRevenueDB(),它返回 Revenue 的真实值,包括 null。仅当访问要添加到数据库的值时才会调用此方法。

这看起来如何作为解决方案?它应该可以工作,而且速度很快。但这似乎是一个非常肮脏的解决方案,有更好的选择吗?

非常感谢所有评论!

最佳答案

您实际上有两个客户端,一些需要查看 NULL,一些明确不能查看 null。

如果确实将“不知道”转换为“零”具有商业意义,那么我认为拥有两个不同的访问器是有效的。

我可能会选择一个与 getXxxxDb() 不同的名称,例如 getXxxxxOrNull(),我的理由是可以想象,不仅是 Db 最终会关心它是否为 null,

关于java - 在 Java 应用程序中将原语更改为盒装原语的后果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4959477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com