我的代码正在执行以下操作(仅作为示例,我指定 java.lang.ref.SoftReference 的包路径的原因是要注意它不是我自己的实现:-):
...
List<String> someData = new ArrayList<String>();
someData.add("Value1");
someData.add("Value2");
...
java.lang.ref.SoftReference softRef = new SoftReference(someData);
...
HttpSession session = request.getSession(true);
session.setAttribute("mySoftRefData", softRef);
...
然后:
...
java.lang.ref.SoftReference softRef = session.getAttribute("mySoftRefData");
if (softRef != null && softRef.get() != null) {
List<String> someData = (List<String>)softRef.get();
// do something with it.
}
...
有什么缺点吗?哪个我没看到?谢谢!