将地图复制到其他地图时丢失对象信息

时间:2011-11-23 18:25:35

标签: java grails

我有许多具有属性描述的对象,其中包含:

description: "This is <strong>my description<strong>"

我在方法中用这个对象构建一个列表A然后返回。 另一个列表B正在接收A列表,它隐藏了html标签。

当我访问列表B中列表A的同一对象时,描述如下:

description: "This is my description"

我不知道地图或列表上是否有属性在将HTML内容传输到另一个时丢失了HTML内容。

有人能帮助我吗?

代码:

def bla {
    def mentions = [:]
    mentions = extractMentionsFromJSON(def json)
    println " 3 " + mentions[0].description
}

def extractMentionsFromJSON(def json){
    def result = []

    json.response.docs.each {
        try {
            Mention m = new Mention()
            m.title = json.highlighting[m.id].'title'.getAt(0)
            println "1 title --> " + m.title
            println "1 title  --> " + m.title.getClass()

            m.description = json.highlighting[m.id].'description'.getAt(0)
            println "1 description --> " + m.description
            println "1 description --> " + m.description.getClass()

            result.add(m)
        } catch (Exception e) {
            println "ERROR" 
        }
        println " 2 "
        result.each { println it.title}
        return result
    }
}

在打印“1”和“2”中,对象描述和标题具有html内容的正确属性。 在prin“3”中,没有html内容。

1 个答案:

答案 0 :(得分:1)

当您在Groovy或Java中传递列表时,您不会传递列表的副本及其中的所有内容。您只需将引用传递给同一列表及其中的相同项目。

如果在方法中更改这些对象,则引用它们的任何其他位置都将看到更改。您需要明确地复制这些对象。

(如果答案过于模糊和通用,我很抱歉,但您没有提供足够的有关您的代码的信息来制作正确的样本。)