【问题标题】:Are there any disadvantages to wrapper types besides performance?除了性能之外,包装器类型还有什么缺点吗?
【发布时间】:2012-09-28 13:19:03
【问题描述】:

在我的工作中,我主要从事具有大量数据库代码的业务应用程序。我通常不写数字运算的科学逻辑。

这让我想知道——总是在我的实体类中使用包装器类型是个好主意吗?我发现自己经常将原语转换为包装器。相反,我想不出我不能没有原始人的情况。

如果我将实体中的字段声明为包装器,则从 db 读取的数据将由我的持久层自动映射到这些字段,从而省去了手动创建它们的麻烦。

有些事情只能通过经验来实现,所以我问你们,有没有人尝试过这种方法?有什么问题吗?

我并不关心性能,而是从良好实践/架构的角度提出这个问题。

【问题讨论】:

    标签: java database wrapper


    【解决方案1】:

    包装器与基元

    优点

    • 可以与泛型一起使用
    • 支持许多其他方法。

    缺点

    • 使用更多 CPU
    • 使用更多内存
    • 表示该值可以是null
    • 在某些情况下需要更长的输入时间。

    【讨论】:

    • 由于我不关心 cpu 和内存,并且 db 值显然可以为空,我想这是对所有包装器方法的认可。是吗?
    • 如果可以是null,那么使用包装器可能是更好的选择。我更喜欢尽可能使用原语,但不是在这种情况下。
    • 顺便说一句,我关于更长名称的观点似乎微不足道,除了编写 Integer 而不是 int 所花费的时间可能是内存差异成本的 1000 倍。但是,编写令人困惑的代码的成本通常要高得多,因此请尽可能使其简单明了。
    • 谢谢。让我问这个问题的原因是 Ruby 没有原语只有包装器。我希望 java 有更短的名字。
    • 理想情况下,编译器可以优化原语与包装器的使用,因此您无需担心。我会添加一个关键字或注释来说明一个值是否可以是null。 (默认情况下,我会让变量不null 能够)
    猜你喜欢
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2011-06-02
    • 2020-02-27
    • 1970-01-01
    • 2021-09-25
    相关资源
    最近更新 更多