我想知道用于存储标签值的数据结构。我的XML结构是:
<personaldetails>
<name>Michael</name>
<age>28</age>
<gender>Male</gender>
<address>123 Streeet 7</address>
<country>India</country>
<pincode> 1234877</pincode>
<contactno>35646445</contactno>
<emailid>michael@abc.com</emailid>
</personaldetails>
我想使用数据结构将值存储在一个地方。目前我正在使用setter和getter方法来检索使我的代码变大的值。 有人可以建议吗?
答案 0 :(得分:1)
对象上的getter和setter具有类型安全的优势。例如,如果您尝试编写代码getContactN
,那么编译器会给您一个错误。因此,虽然它可能会使你的代码变长,但是getter和setter都很好。
另一种方法是使用地图,例如Map<String,String>
来存储值。这更通用 - 你可以插入你喜欢的任何键 - 并且代码更少,但它不会给你带来getter和setter的静态分析好处。如果你拼错了某些东西,你只会在执行那段代码时发现它 - 如果它在if
中,代码可能并不总是被执行而你可能会错过它。
使用getter / setter和map之间也存在性能差异,但是,我想在99%的应用程序中它们都是无关紧要的,所以这里不值得指出。如果该代码成为瓶颈,您可以将时间安排在哪个方法中,看看哪种方法更好 - 但只有在您可以验证此区域存在性能问题时才这样做,否则只需使用哪种技术更易于维护和更轻松。
答案 1 :(得分:0)
我建议您通过编写自己的“容器”类来避免重新发明轮子。相反,您可以考虑使用与JDK一起提供的xjc等工具直接从XML模式生成Java类。这种方法有一个巨大的优势 - 您不必关心XML的任何显式解析,JAXB代码也将验证您的XML内容。
有关使用JAXB here的更多信息。
编辑:我刚刚发现了Android标签,我承认我不确定javax.xml.bind软件包是否随JDK for Android设备一起提供。然而,谷歌搜索“xml绑定android”似乎带来了一些你可以考虑的第三方工具。