更改通过引用检索的对象

时间:2013-07-03 17:51:57

标签: java jsp

我正在使用JSP / Java,我对以下代码提出了一个问题:

HttpSession httpSession = (HttpSession)pageContext.getSession();
SessionData sessionData = (SessionData)httpSession.getAttribute("data");
sessionData.setAccountId(account.getAccountId());
sessionData.setUsername(account.getUsername());
sessionData.setLoggedIn(true);

我是否需要致电httpSession.setAttribute("data", sessionData);应该我(仍然)是否这样做?

据我所知,对象是通过引用传递的,但我不知道细节,我宁愿在第一次尝试中做到这一点。

问候。

2 个答案:

答案 0 :(得分:4)

  

我是否需要调用httpSession.setAttribute(“data”,sessionData);或不,

不,你不需要这样做。 sessionData是存储在Session对象中的引用的副本。因此,无论您使用此引用对对象所做的任何更改,都将反映在Session中存储的引用。

  

据我所知,对象是通过引用传递的

不,Java中没有任何内容通过引用传递。一切都是通过价值传递的。在您的情况下,它是通过值传递的引用。

答案 1 :(得分:0)

Java按值传递所有内容。因此,您不需要这样做。对象引用按值传递。