2011-11-23 22 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中传递一个列表时,您不会传递列表副本和其中的所有内容。您只需将相同列表和相同项目的引用传递给它。

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

(对不起,如果答案是过于空泛和通用,但是你没有给你的代码,使一个合适的样本足够的信息。)