Aê galera!!!
Gostaria de saber algumas informações sobre o tipo Serializable. É uma classe ou interface? Qual a sua utilidade?
Agradeço a colaboração!!!
Aê galera!!!
Gostaria de saber algumas informações sobre o tipo Serializable. É uma classe ou interface? Qual a sua utilidade?
Agradeço a colaboração!!!
ela eh uma interface… voce implemeta ela na classe que voce deseja serializar!!!
a serialização serve para salvar as informaçoes da sua classe em um arquivo *.ser!!!
exemplo:
eu tenho um classe contato que tem 2 atributos ( nome, telefone ) depois q eu tiver com minha classe pronta(com os atributos preenchidos) eu serializo esse objeto!!! quando eu deserializar ele… ele vai abrir essa classe… sem passar pelo construtor… e sem pegar os valores default para suas variasveis… ele vai pegar os valores q eraum kuandu vc serializou o objeto!!!
Serialização é o mecanismo default de persistência do Java.
Para utilizá-lo basta fazer sua classe implementar a interface java.io.Serializable que é apenas uma interface de marcação.
Também é recomendável definir o atributo serialVersionUID.
Opcionalmente, se você não gostar da serialização default, você pode reescrever na sua classe os métodos responsáveis por isso.
Atenciosamente,
quando vc deseja salvar o estado do seu objeto… quando vc faz um programa… normalmente vc instancia um objeto ai vc quer salvar o estado dele(o seu valor) para usar depois e isso vc faz com a serialização, sem ela toda vez que o construtor é rodado… os valores sao perdidos recebendo o valor padrao… ou o valor definido explicitamente… um exemplo:
Voce cadastrou uma pessoa e colocou altura dela 1.70, e serializou esse objeto. Dai o roda construtor da classe, porem a altura do objeto ela nao roda… ou seja, se tiver um valor padrao ela nao recebe o valor padrao… ai vc pode recuperar aquele valor que foi definido…
import java.io.*;
class Trans implements Serializable{
transient int x=42;
Trans(int a){
x=a;
}
public static void main(String args[]){
Trans t = new Trans(10);
System.out.println(t.x);
try{
FileOutputStream fo = new FileOutputStream("rn.xtt");
ObjectOutputStream oo = new ObjectOutputStream(fo);
oo.writeObject(t);
}catch(Exception e){e.printStackTrace();}
try{
FileInputStream fi = new FileInputStream("rn.xtt");
ObjectInputStream oo = new ObjectInputStream(fi);
t=(Trans)oo.readObject();
}catch(Exception e){e.printStackTrace();}
System.out.println(t.x);
}}