是否可以在 Simple 中查找是否存在指定属性java的框架? 假设我有以下 xml:
<packet id="250">
<msg id="1" uniqueAttribute1="some value" x="7" />
<msg id="2" someStuff="123" />
<msg id="3" someOtherStuff="abc" />
</packet>
上面的所有消息都应该反序列化为可能从公共(public)基类继承的不同类的对象。哪个消息应该实例化哪个类的对象应该取决于属性的名称。这意味着如果消息中存在名为“uniqueAttribute”的属性,则应创建 Foo 类的对象,如果存在“someStuff”,则应创建 Bar 类的对象,依此类推。
我想到的唯一方法是尝试反序列化到类的对象并捕获异常并重试,这听起来很糟糕。
如果“简单”框架无法实现,也许您可以建议其他方法?
最佳答案
有多种方法可以做到这一点。通常可以使用访问者或策略。请参阅以下内容了解如何使用访客。这使用命名空间来确定类型,但您可以更改它以使用一个或多个属性。
此外,您可以使用转换器来执行此操作。看看教程。
关于java - 简单框架 xml 反序列化 - 查找属性是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298242/