我有一个与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
它可能是您的类被您正在使用的库序列化,或'瞬态'可能被您正在使用模型库用于其他目的的库。它可能会在视图中显示除“瞬态”视图外的所有字段。您将不得不阅读您正在使用的库的文档。 –