gpt4 book ai didi

java - 什么时候应该使用对象而不是 json 对象?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:22 26 4
gpt4 key购买 nike

我正在用java设计一个程序

  1. 很多对象只是数据包,实际上并不需要任何非静态方法。

  2. 我想轻松地从硬盘保存和加载对象。

  3. 一些对象实例需要一个额外的属性,我可能会随着时间的推移添加或删除这些属性。

  4. 如果某些对象确实具有额外的属性,那么大多数时候我仍会将它们视为完全相同类型的对象。

似乎一个很好的解决方案是在运行时以 JSON 格式存储这些对象,而不是真正为它们定义专用对象。您有什么理由不想这样做吗?即,是否有任何理由认为以 json 格式存储对象只是为了方便?

最佳答案

如果您来自 Objective-C/PHP(或其他一些语言)字典或其他类型的 map ,键/值对很常见。

但在 Java 中,通常首选强类型对象:有时称为 POJO(普通旧 Java 对象)。 Java 是一种面向对象的语言,您可以从 OO 概念中获益。对于非常小的应用程序并不总是很明显,但通常这是可行的方法。强类型对象涉及更多样板代码,但任何现代 IDE 都会为您完成(生成 getters/setters)。所以这不是反对它的理由。

最重要的是,使用 Jackson/GSon/Moxy 将 POJO 对象从 JSON 存储到 JSON 是非常容易的。有许多优秀的 JSON 提供程序/库可以在没有任何配置(或很少)的情况下使用 POJO。

我可以立即看到的其他优点:

  • 使用 pojo IDE 时还会在编码时显示可用的 getters/setters。

  • 今天您可以将“对象”以 JSON 格式存储在磁盘上,明天您可能会将它们存储在数据库中。您可以使用几组注释轻松地从 Jackon 序列化(或您首选的 JSON 库)切换到 JPA。

  • 许多框架(JAX-RS、JPA、JAXB)需要强类型对象,并将使用反射或类似方法来检查和处理您的对象。

关于java - 什么时候应该使用对象而不是 json 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30468473/

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