Transient

2 respostas
LPJava

quando um objeto eh marcado como transient ele é ou nao eh? serializado… ? pois marquei uma variavel de instancia como transient, ai fiquei na duvida se for serializado, ja que quando des-serializei ele me retornou null, como ja esperava por ser transient… mais fico nessa duvida se eh serializado ou igonorado: sintaxe abaixo:

import java.io.*;

class Mat implements Serializable{
	transient Integer nota=10;
	Mat(Integer a){
		nota = a;
	}
	public static void main(String args[]){
		Mat m = new Mat(8);
		try{
			FileOutputStream fo = new FileOutputStream("mat.txt");
			ObjectOutputStream op = new ObjectOutputStream(fo);
			op.writeObject(m);
			System.out.println(m.nota);
			op.close();
		}catch(Exception e){}
		
		try{
			FileInputStream ip = new FileInputStream("mat.txt");
			ObjectInputStream oi = new ObjectInputStream(ip);
			m=(Mat)oi.readObject();
			oi.close();
			System.out.println(m.nota);
		}catch(Exception e){}
	}
}

2 Respostas

fabiofalci

http://mindprod.com/jgloss/transient.html

Deh

vamos supor que você tenha a classe Casa que é serializable, essa classe Casa TEM-UMA Porta

olhe o código:

public class Casa implements Serializable {

    Porta p;
    //mais campos e etc
   public static void main(String... args){
    //código para serializar;
   }
}

esse código vai funcionar? R: não.

porque Porta não serializable, o que fazemos então?
marcamos como “transient”, ou seja, a instância de Porta vai ser negada durante a serialização, e vai ser salva com seu valor default(null).

Acho que é isso.
Espero não ter errado em nada!

Criado 8 de fevereiro de 2007
Ultima resposta 8 de fev. de 2007
Respostas 2
Participantes 3