JavaRush /Курсхо /All lectures for TG purposes /Модификатор transient

Модификатор transient

All lectures for TG purposes
Сатҳи , Дарс
дастрас

— Салом, Амиго! Як иловаи хурде ба сериализатсия гуфтан мехостам.

Фарз мекунем, ки класи мо дорои истинод ба ягон InputStream аст, пас онро сериализатсия кардан мумкин нест, ҳамин тавр?

— Бале. Худам гуфтӣ, ки потокҳоро сериализатсия кардан мумкин нест. Ва сериализатсия кардани объекте, ки дар он маълумоти сериализатсияшаванда нест, низ мумкин нест.

— Бале. Маҳз ҳамин тавр. Аммо чӣ мешавад, агар класс маълумотеро нигоҳ дорад, ки дар ҳолати он нақши муҳим надорад, аммо ба ӯ халал мерасонад, ки класс сериализатсияшаванда ҳисоб шавад? Чӣ медонад, ки класс ба худ чӣ гуна маълумоти нолозимро нигоҳ дошта метавонад. Шояд, ки ӯ метавонад ин маълумотҳоро дар ҳама вақти холӣ кунад ё ҳатто ҳамин тавр ҳам мекунад.

Барои чунин ҳолатҳо таҳиягарони Java як калимаи махсусро фикр кардаанд – transient. Инро метавон пеш аз тағйирёбандаи класс навишт ва он дар сериализатсия ба инобат гирифта намешавад. Ҳолати он ҳеҷ нигоҳ дошта намешавад ва барқарор намегардад. Гӯё ки ӯ тамоман нест. Маҳз барои чунин вазъиятҳо, ки мо чанде пеш дида будем.

Кеш кардан ва модификатори volatile-ро дар ёд дорӣ? Қоидаҳо бе истисно вуҷуд надоранд.

Ин як мисоли хурсандибахш барои ту:

Мисоли «гурба» бо тағйирёбандаи барои сериализатсия нонамоён — in:

Код
class Cat implements Serializable
{
 public String name;
 public int age;
 public int weight;

 transient public InputStream in = System.in; 
}
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION