Урок 47: Сериализация (часть 3). Transient, serialVersionUID. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Урок 47: Сериализация (часть 3). Transient, serialVersionUID.



https://www.youtube.com/watch?v=nr4_JRKCGBU&list=PLAma_mKffTOSUkXp26rgdnC0PicnmnDak&index=48

 

 

 

Transient используется тогда, когда мы не хотим сериализовывать какое-либо поле.

 

 

import java.io.Serializable;

public class Person implements Serializable {
private int id;
/*
Transient используется тогда,
когда мы не хотим сериализовывать какое-либо поле.
*/
private transient String name;

public Person(int id, String name){
   this. id = id;
   this. name = name;
}

public int getId() {
   return id;
}
public String getName(){
   return name;
}

public String toString(){
   return id + ": " + name;
}
}

 

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class WriteObject {
public static void main(String[] args) {
   Person person1 = new Person (1, "Mike");
   try {
       // FileOutputStream - для записи ЛЮБЫХ бинарных данных.
      
FileOutputStream fos = new FileOutputStream ("people.bin");

        // ObjectOutputStream - для записи ТОЛЬКО Объектов, состоящих
       // из байтов.
      
ObjectOutputStream oos = new ObjectOutputStream (fos);

       // Записываем Объект в файл.
      
oos.writeObject(person1);
       //!!! ЗАКРЫВАЕМ ПОТОК!!!
      
oos.close ();

   } catch (IOException e) {
       e.printStackTrace ();
   }
}
}

 

 

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class WriteObject {
public static void main(String[] args) {
   Person person1 = new Person (1, "Mike");
   try {
       // FileOutputStream - для записи ЛЮБЫХ бинарных данных.
      
FileOutputStream fos = new FileOutputStream ("people.bin");

       // ObjectOutputStream - для записи ТОЛЬКО Объектов, состоящих
       // из байтов.
      
ObjectOutputStream oos = new ObjectOutputStream (fos);

       // Записываем Объект в файл.
      
oos.writeObject(person1);
        //!!! ЗАКРЫВАЕМ ПОТОК!!!
      
oos.close ();

   } catch (IOException e) {
       e.printStackTrace ();
   }
}
}

 

 

Вывод в Файл:

 

 

 

Вывод в консоль:

 

1: null

 

 

Включаем предупреждение serialVersionUID в " JI ".

File -> Settings -> Editor -> Inspection -> Java -> Serialization issues -> Serializable class without'serialVersionUID' -> [V]

 

 

 

import java.io.Serializable;

public class Person implements Serializable {
/*
serialVersionUID - это маркер, который говорит нам о том,
является ли записанный в файл Объект тем же Объектом в программе
(был ли он изменен)?
*/
private static final long serialVersionUID = -8626318026843608878L;
private int id;
private String name;

public Person(int id, String name){
   this. id = id;
   this. name = name;
}

public int getId() {
   return id;
}
public String getName(){
   return name;
}

public String toString(){
   return id + ": " + name;
}
}

 

 



Поделиться:


Последнее изменение этой страницы: 2020-11-11; просмотров: 71; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.246.203 (0.004 с.)