transient 关键字
transient关键字声明的成员变量,在序列化时会被忽略。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public abstract class Main {
public static void main(String[] args) {
User user = new User("name", "pwd");
try (ObjectOutputStream oop = new ObjectOutputStream(new FileOutputStream("user.txt"))) {
oop.writeObject(user);
} catch (IOException e) {
e.printStackTrace();
}
User readUser = null;
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("user.txt"))) {
readUser = (User) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
if (readUser != null) {
System.out.println(readUser);
}
}
}
class User implements Serializable {
String name;
transient String pwd;
public User(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
|
输出:
1
|
User{name='name', pwd='null'}
|