gpt4 book ai didi

java - session 中的 ArraryList 附件

转载 作者:行者123 更新时间:2023-12-01 14:49:03 25 4
gpt4 key购买 nike

我已将一个数组列表从 servlet 附加到 session 中,附加后,我在 servlet 中清除该 arraylist,因此它得到也从 session 中清除。

请问可以说明理由吗?

最佳答案

尽管你的问题不太适合 Stack Overflow,但我想我明白你的意思。

所以你有一个

List<MyClass> myList = new ArrayList<MyClass>();

在你的代码中的某个地方,你

  1. 将其放入 session 中
  2. 在其他地方你可以对其执行.clear()

对吗?

问题是,与您的想法相反,您只有一个 ArrayList 实例。 “在” session 中和“在您的 servlet 中”是相同的。只是你有一个不同的引用指向它......

您需要做的是将列表实例的不同实例附加到您的 session :

//this creates a new list instance, with references to the same objects
List<MyClass> myNewList = new ArrayList<MyClass>(myList);

并将此myNewList“附加”到 session 。这样,生成的两个列表可以进行不同的处理,它们可以具有不同的内容。如果您更改其中一个,另一个将保持不变。

但是,我建议重新考虑您的结构,共享信息始终是一个需要仔细处理的问题,Java Concurrency In Practice是处理此类问题时值得阅读的重要书籍。

关于java - session 中的 ArraryList 附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com