Java关键字——transient

我们都知道,Java要序列化一个对象要实现Serializable接口,然后我们在rpc传输或者实例化时候就可以把参数序列化。但是某些字段我们可能不想将他序列化,比如密码,证件号这些字段,这时候transient就派上用场了,我们看下面代码:

public class TestDomain implements Serializable {
    private String a;
    private String b;

    private transient String c;

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
    }

    public String getC() {
        return c;
    }

    public void setC(String c) {
        this.c = c;
    }

    public static void main(String[] args) {
        TestDomain domain = new TestDomain();
        domain.setA("A");
        domain.setB("B");
        domain.setC("C");
        System.out.println(JSON.toJSONString(domain));
    }
}

main执行的结果

{"a":"A","b":"B"}

通过示例我们可以发现,transient自动屏蔽了我们不想序列化的字段。


标题:Java关键字——transient
作者:MarsChan
地址:https://marscheng.cn/articles/2020/06/21/1592723017364.html