我正在开发一个java应用程序,它需要一个特殊的动态属性组件。参数被序列化(使用 JSON)并存储在数据库中,然后在运行时反序列化。所有属性都显示在具有 3 列(属性名称、属性类型和属性值)的 JTable 中,并存储在 HashMap 中。
我目前有两个问题需要解决:
hashmap还可以存储对象,并且对象可以设置为null。如果设置为 null 我不知道它们属于哪个类。即使对象为空并且知道它们属于哪个类,我如何存储对象?我是否需要将每个对象包装在一个类中来保存存储对象的类?
对象在运行时从 json 反序列化。问题在于,有许多不同类型的对象,而我实际上并不知道将存储在 HashMap 中的所有对象类型。所以我正在寻找一种动态反序列化对象的方法..有这样的方法吗?我是否必须将对象的类存储在序列化的 json 字符串中?
谢谢!
最佳答案
查看空对象模式。您可以使用额外的类来表示您的类型的 Null 实例,并且仍然可以包含有关其自身的信息。
有一种叫做类 token 的东西,它是使用类对象作为异构容器的 key 。请查看 Joshua Bloch 所著的 Effective Java,第 29 项。我不确定这种方法对您有何作用,因为您可能有许多相同类型的实例,但我将其留作引用。
关于java动态属性表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847007/