簡體   English   中英

如何防止Groovy創建小寫(元)屬性名稱?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM