У меня проблема, связанная с использованием ключевого слова transient
до модификатора private
в java.Зачем использовать ключевое слово `transient` в java?
объявление переменное:
transient private ResourceBundle pageResourceBundle;
Когда я Гугл, я нашел эти ниже документы, но они говорят о сериализации. На самом деле мой класс не реализует сериализованных.
Для получения более подробной информации:
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 Редактировать мой вопрос PLS см. Мой класс его не реализует serialize – Sitansu
Возможно, ваш класс будет сериализован библиотекой, которую вы используете, или 'transient' может использоваться библиотекой, которую вы используете с моделью для другой цели. Он может отображать все ваши поля в представлении, кроме «переходных». Вам нужно будет прочитать документацию для библиотеки, которую вы используете. –