美文网首页
Java将对象序列化 Transient

Java将对象序列化 Transient

作者: IT菜鸟学习 | 来源:发表于2019-12-12 15:18 被阅读0次

一、transient使用小结

1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。
2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。

3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。

科普下 序列化、反序列化、持久层、持久化,
序列化实体类变成json等格式,
反序列化就是json变成实体类,
持久层就是保存到数据库,
持久化保存到数据库的数据的特性。

例子:

public class TransientTest {

    public static void main(String[] args) {
        User user = new User("张三", 11);
        System.out.println(user.toString());
        String s = JSON.toJSONString(user);
        System.out.println(s);

    }
}

class User {

    private transient String name;
    private Integer age;

    public User() {
    }

    public User(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

输出

User{name='张三', age=11}
{"age":11}

二、使用@ResponseBody,transient字段能被序列化么?

使用@ResponseBody, 字段上使用 transient 不能过滤
@ResponseBody返回的格式由很多因素决定。
常用的返回json格式。如果使用的jackson convert可以通过 @JsonIgnore进行过滤字段;

相关文章

  • Java transient关键字小记

    transient义为短暂的。在Java中,transient和对象的序列化(持久化)息息相关。 在Java中,要...

  • Java 序列化

    参考链接:Java对象的序列化和反序列化Java transient关键字使用小记 1. Java序列化概念 把对...

  • ArrayList的elementData为什么要用transi

    先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义;Java中对象...

  • transient关键字

    Java中的序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指...

  • Java关键字(一) —— transient

    在讨论transient之前,有必要先搞清楚Java中序列化的含义; Java中对象的序列化指的是将对象转换成以字...

  • java基础之-关键字 transient

    1. 先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义; Jav...

  • 2018-08-30

    java关键字 一、transient transient的作用及使用方法 如何将非静态的数据不进行序列化?用tr...

  • JAVA-transient 关键字

    为什么要有transient关键字 在Java中,transient修饰的变量不会被序列化,即这些变量并不是序列化...

  • Java IO流(对象的序列化)

    对象的序列化 将Person11中的内容改变,重新读取会报错。 静态成员不能被序列化 成员变量被transient...

  • Java(二)Java基础--04熟悉Java中各种关键词

    一、transient 1、序列化和非序列化 序列化和非序列化 2、transient transient 二、i...

网友评论

      本文标题:Java将对象序列化 Transient

      本文链接:https://www.haomeiwen.com/subject/gyrtnctx.html