[英]How to prevent groovy from creating lowercase (meta) property names?
我有問題 我想要一個很好的動態groovy類來表示一個丑陋的XML結構(不幸的是,JAXB,XmlBeans等是不可能的)。 為此,我需要區分大小寫的屬性,以將元素值從XML映射到我的類。
但是,由於JavaBeans規范,Groovy會自動生成小寫的屬性名稱。
我可以覆蓋此功能並保留我的屬性嗎?
謝謝
這是一個例子:
源XML如下所示:
<data>
<document>
<linked name="MyDataObject">
<datarow>
<element name="Name"></element>
<element name="CurrentTime"></element>
<element name="abc"></element>
<element name="UID"></element>
</datarow>
</linked>
<!--
Here are a lot of more of <element> and <linked>
-->
</document>
</data>
我用XmlParser解析它,並讓一些類在單獨的節點上工作。
class XMLMyDataObject extends MyXMLNodeBaseClassWithDynamicFunctionality {
String Name
String CurrentTime
String abc
String UID
}
本示例中的結果由於使用小寫名稱:我只能找到2個元素。
XMLMyDataObject.metaClass.properties ...
name cannot find XML-Element
currentTime cannot find XML-Element
abc find XML-Element
UID find XML-Element
我目前的情況:
我正在使用類的純Java部分來獲取調用getDeclaredFields方法的屬性名稱。
但是這個問題仍然很有趣。
不知道你在做什么。 通常,您將使用XmlParser或XmlSlurper來解析Groovy中的xml,而這些都不會將屬性名稱更改為小寫。
例:
def xml = """<person>
<ADRESS>
<PostalCode>43</PostalCode>
</ADRESS>
</person>"""
new XmlParser().parseText(xml).ADRESS.PostalCode.text()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.