2013-11-26 28 views
2

我在會話中的java bean,我這樣做:改變的java bean屬性的一些在會議

QuestionnaireBeanWrapper wrapper = (QuestionnaireBeanWrapper) session.getAttribute(examPart); 
wrapper.getQuestionnaireBeanList().get(examNumber - 1).setQuestionAnswer(examAnswer); 

我更改bean的屬性。我的問題是我應該再次在session中設置它嗎?或session中的對象是否自動更改?

+0

是,它會自動改變你cnaged是[參考文獻] [1]。 [1]:http://stackoverflow.com/questions/40480/is-java-pass-by-reference – vacuum

回答

0

當你從會話中檢索到bean時,你有一個對bean的引用。當通過引用對bean進行更改時,更改將反映在會話中,因爲它指向相同的對象。

嘗試下面的例子:

QuestionnaireBeanWrapper wrapper = 
    (QuestionnaireBeanWrapper) session.getAttribute(examPart); 
wrapper.getQuestionnaireBeanList().get(examNumber - 1).setQuestionAnswer(examAnswer); 

QuestionnaireBeanWrapper wrapper2 = (QuestionnaireBeanWrapper) session.getAttribute(examPart); 
System.out.println((wrapper.getQuestionnaireBeanList().get(examNumber - 1).getQuestionAnswer() == wrapper2.getQuestionnaireBeanList().get(examNumber - 1).getQuestionAnswer())? "Same":"Different"); 
相關問題