В Java Deserialization ключевое слово transient используется для ограничения данных от пользователя. Если мы хотим, чтобы получить эти данные, то есть значение по умолчанию этой переменной следующим образом:Как извлечь член из файла, объявленного как переходный в концепции десериализации Java?
Student.java
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
int id;
String name;
static String college;
transient int age;
public Student(int id,String name,int age) {
this.id=id;
this.name=name;
college="SVS";
this.age=age;
}
}
и Deserialization.java
public class Deserialization {
public static void main(String ar[]) throws Exception {
ObjectInputStream in = new ObjectInputStream(new FileInputStream("SerializeOutput.txt"));
Student s = (Student) in.readObject();
Student s1 = (Student) in.readObject();
System.out.println(s.id + " " + s.name+" "+s.age);
System.out.println(s1.id + " " + s1.name+" "+s1.age);
in.close();
}
}
Вот, у меня есть исходные значения id
и name
, но я получаю значение для age
как 0 (знаю для int).
Я хочу получить исходное значение age
.
Возможно ли получить требуемое значение?
В случае, если поле отмечено как «переходный», java не будет записывать его в выходной поток, когда объект сериализуется. Поскольку у вас нет его в потоке, вы не можете получить значение. –
Спасибо много..Андрю – Bosco