2011-11-23 21 views
0

我有一個屬性描述許多對象,其中是這樣的:失去對象信息時,副本地圖,其他地圖

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

我建立一個列表,一本在方法的對象和我回來。 另一個列表B正在接收A列表,它隱藏了html標籤。

當我訪問列表A的同一對象列表B中,描述是這樣的:

description: "This is my description" 

我不知道是否有在transfering時失去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內容。

+0

請出示您所使用的代碼。 –

+1

你能顯示代碼嗎?一個簡單的副本或對同一對象的引用不能表現出這種行爲。你如何檢查內容? –

+1

如果它存儲爲一個字符串,它應該沒問題。我們有很多將HTML存儲在數據庫或屬性中的實例。你確定其中一個對象不只是修改參考嗎? – Igor

回答

1

當您在Groovy或Java中傳遞一個列表時,您不會傳遞列表副本和其中的所有內容。您只需將相同列表和相同項目的引用傳遞給它。

如果在方法中更改這些對象,則任何其他引用它們的地方都會看到這些更改。您需要明確地製作這些對象的副本。

(對不起,如果答案是過於空泛和通用,但是你沒有給你的代碼,使一個合適的樣本足夠的信息。)