java动态属性表

标签 java json serialization hashmap

我正在开发一个java应用程序,它需要一个特殊的动态属性组件。参数被序列化(使用 JSON)并存储在数据库中,然后在运行时反序列化。所有属性都显示在具有 3 列(属性名称、属性类型和属性值)的 JTable 中,并存储在 HashMap 中。

我目前有两个问题需要解决:

  1. hashmap还可以存储对象,并且对象可以设置为null。如果设置为 null 我不知道它们属于哪个类。即使对象为空并且知道它们属于哪个类,我如何存储对象?我是否需要将每个对象包装在一个类中来保存存储对象的类?

  2. 对象在运行时从 json 反序列化。问题在于,有许多不同类型的对象,而我实际上并不知道将存储在 HashMap 中的所有对象类型。所以我正在寻找一种动态反序列化对象的方法..有这样的方法吗?我是否必须将对象的类存储在序列化的 json 字符串中?

谢谢!

最佳答案

  1. 查看空对象模式。您可以使用额外的类来表示您的类型的 Null 实例,并且仍然可以包含有关其自身的信息。

  2. 有一种叫做类 token 的东西,它是使用类对象作为异构容器的 key 。请查看 Joshua Bloch 所著的 Effective Java,第 29 项。我不确定这种方法对您有何作用,因为您可能有许多相同类型的实例,但我将其留作引用。

关于java动态属性表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847007/

相关文章:

java - 需要更好的算法来使用 Java 清理 SQL Server 表

java - 使用 lambda 表达式更新嵌套列表 : Java 8

java - 动态打印表格行

json - 如何在 compojure 处理程序中获取 selflink?

jquery - 我如何使 $.serialize() 考虑到那些禁用的 :input elements?

java - 在X509TrustManager中,方法 "getAcceptedIssuers"有什么用?

javascript - 为什么 JSONObject.length 未定义?

javascript - 无法为变量设置新值

java - GUI 反序列化期间 Swing 触发监听器

c# - 如何将对象保存到 Visual Studio 中的 fooSettings.settings 文件?