java在将映射复制到其他映射时丢失对象信息
我有许多具有属性描述的对象,其中如下所示:
description: "This is <strong>my description<strong>"
我在一个方法中用这个对象构建一个列表,然后返回。 另一个列表B接收A列表,它隐藏html标记
当我访问列表B中列表A的同一对象时,描述如下:
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内容属性。 在prin“3”中,没有html内容
# 1 楼答案
在Groovy或Java中传递列表时,不会传递列表及其所有内容的副本。您只需传递对同一列表及其内部相同项的引用
如果在方法中更改这些对象,则引用它们的任何其他位置都将看到这些更改。您需要显式地复制这些对象
(如果答案过于模糊和笼统,我很抱歉,但您没有提供足够的代码信息来制作适当的示例。)