有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

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

    (如果答案过于模糊和笼统,我很抱歉,但您没有提供足够的代码信息来制作适当的示例。)