Потеря информации об объекте при копировании карты на другую карту - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть много объектов с описанием свойства, где это выглядит так:

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

Я строю список A с этими объектами в методе и возвращаю.Другой список B, который получает список A, скрывает html-теги.

Когда я получаю доступ к тому же объекту списка A в списке B, описание выглядит следующим образом:

description: "This is my description"

Я не знаю, есть ли свойство на картах или списках, которые теряют контент 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.В принте "3" нет html контента.

1 Ответ

1 голос
/ 23 ноября 2011

Когда вы передаете список в Groovy или Java, вы не передаете копию списка и все, что в нем.Вы просто передаете ссылку на тот же список и те же элементы внутри него.

Если вы измените эти объекты в методе, любое другое место со ссылкой на них увидит изменения.Вместо этого вам нужно явно сделать копии этих объектов.

(извините, если ответ слишком расплывчатый и общий, но вы не предоставили достаточно информации о своем коде, чтобы сделать правильный пример.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...