public class Contact implements Serializable {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- Quando devo implementar a
Serializable
interface? - Por que nós fazemos isso?
- Dá alguma vantagem ou segurança?
java
serialization
theJava
fonte
fonte
Respostas:
De que se trata essa coisa de "serialização"? :
Portanto, implemente a
Serializable
interface quando precisar armazenar uma cópia do objeto, envie-a para outro processo que seja executado no mesmo sistema ou na rede.Porque você deseja armazenar ou enviar um objeto.
Isso facilita o armazenamento e o envio de objetos. Não tem nada a ver com segurança.
fonte
Implemente a
Serializable
interface quando desejar converter uma instância de uma classe em uma série de bytes ou quando achar que umSerializable
objeto pode fazer referência a uma instância da sua classe.Serializable
As classes são úteis quando você deseja persistir instâncias delas ou enviá-las por uma conexão.Instâncias de
Serializable
classes podem ser facilmente transmitidas. A serialização tem algumas conseqüências de segurança, no entanto. Leia o Java eficaz de Joshua Bloch .fonte
A resposta a esta pergunta é, talvez surpreendentemente, nunca , ou mais realista, apenas quando você é forçado a interoperabilidade com o código legado . Esta é a recomendação no Effective Java, 3rd Edition, de Joshua Bloch:
O arquiteto-chefe da Oracle, Mark Reinhold, afirma que a remoção do atual mecanismo de serialização Java é um objetivo a longo prazo.
Por que a serialização Java é falha
O Java fornece como parte da linguagem um esquema de serialização no qual você pode optar por usar a
Serializable
interface. Esse esquema, no entanto, possui várias falhas intratáveis e deve ser tratado como um experimento com falha pelos designers da linguagem Java.O que fazer em vez disso
Em vez disso, use um esquema de serialização que você possa controlar explicitamente. Como Buffers de Protocolo, JSON, XML ou seu próprio esquema personalizado.
fonte