TiveumaexplicaçãohojesobresobreaserializaçãoemJava.Ocaraquemeexplicou,dissequeSerializarumobjetosignifica"tirar uma foto"doestadodeumdeterminadoobjetoemdeterminadomomentoesalva-loemumarquivonoHD.
Poisbem...
1 - Gostaria de saber se este conceito está correto.
2 - Gostaria de um exemplo prático.
3 - Gostaria de saber como isso é feito. Posso salvar o estado de qualquer objeto? Por exemplo, posso fazer isso com um javabean? A qualquer momento? Tenho que disparar algum metodo para salvar o estado ou é automatico? Se for automatico, qual criterio é usado pela JVM para capturar o objeto?
Um objeto só pode ser serializado se a classe implementa Serializable, e todos os membros que não são marcados como “transient” forem serializáveis.
Você precisa gravá-lo explicitamente, como mostrado no exemplo acima.
vinny767
Se eu preciso grava-lo explicitamente, qual é a diferença de usar ou não usar o Serializable?
Eu posso faze-lo simplesmente “na mão”, não? (Criando o arquivo e gravando o objeto, sem implementar Serializable)
T
thingol
Você pode transformar o objeto em uma String, gravá-lo no arquivo, e depois lê-lo de volta. A diferença é que usando Serializable você não precisa escrever (e debugar) tanto código.
Então seria correto afirmar que somente posso implementar Serializable se minha classe trabalhar com Streams (input/output de arquivos)?
Porque já vi muita classe que nao lê nem grava nada implementando Serializable… Isso está correto?
T
thingol
Se o objeto precisar ser trafegado entre processos, ou guardado em sessões de um web server, ou outras coisas que precisam transferir e guardar o estado de um objeto de maneira simples, a serialização é útil.