gpt4 book ai didi

java - 简单框架 xml 反序列化 - 查找属性是否存在

转载 作者:行者123 更新时间:2023-12-02 07:20:33 27 4
gpt4 key购买 nike

是否可以在 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 类的对象,依此类推。

我想到的唯一方法是尝试反序列化到类的对象并捕获异常并重试,这听起来很糟糕。

如果“简单”框架无法实现,也许您可​​以建议其他方法?

最佳答案

有多种方法可以做到这一点。通常可以使用访问者或策略。请参阅以下内容了解如何使用访客。这使用命名空间来确定类型,但您可以更改它以使用一个或多个属性。

https://simple.svn.sourceforge.net/svnroot/simple/trunk/download/stream/src/test/java/org/simpleframework/xml/strategy/ClassToNamespaceVisitor.java

此外,您可以使用转换器来执行此操作。看看教程。

关于java - 简单框架 xml 反序列化 - 查找属性是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298242/

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