我有一個與transient
關鍵字在java中的private
修飾符之前有關的問題。爲什麼在java中使用`transient`關鍵字?
變量聲明:
transient private ResourceBundle pageResourceBundle;
當我GOOGLE了它,我發現下面這些文檔,但他們談論的序列化。其實我的班級沒有實現任何序列化。
欲瞭解更多信息:
http://java91.blogspot.in/2017/01/why-does-java-have-transient-fields.html
我的類看起來是這樣的:
public class LoginViewModel extends AbstractViewModel {
transient private ResourceBundle pageResourceBundle;
@AfterCompose
public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {
initializeLoginValues();
boolean timeout = BooleanUtils.toBoolean(getHttpServletRequest().getParameter("timeout"));
if (timeout) {
Messagebox.show(pageResourceBundle.getText("MSG_SESSION_HAS_EXPIRED_PLEASE_LOGIN"), pageResourceBundle.getText("LABEL_ALERT"),
Messagebox.OK, Messagebox.ERROR);
}
view.getPage().setTitle(CsdcLicence.get().getApplicationName());
}
我有一些問題。
1.爲什麼在私有變量前使用transient
關鍵字?
2.使用此關鍵字的目的是什麼?
您提供的鏈接可以解答您的問題。你有什麼疑問?尚未涵蓋的內容? –
@PeterLawrey編輯我的問題,請參閱我的課程,它不實現序列化 – Sitansu
它可能是您的類被您正在使用的庫序列化,或'瞬態'可能被您正在使用模型庫用於其他目的的庫。它可能會在視圖中顯示除「瞬態」視圖外的所有字段。您將不得不閱讀您正在使用的庫的文檔。 –