Estou em uma aula de JSP mas o professor não está sabendo me dizer o pq temos que implementar a classe java.io.Serializable. Na realidade, ele disse que para você transferir objetos é necessária a serialização dos objetos.
Porém, pelo o que eu sei, implements a gente está implementando uma classe de apenas assinaturas…
Qual é a mágica do Java para serializar sendo que estou implementando uma classe que só tem assinaturas, que não está implemenada?
[quote=Java Vinicius Machine][quote=API]
Serializability of a class is enabled by the class implementing the java.io.Serializable interface. Classes that do not implement this interface will not have any of their state serialized or deserialized. All subtypes of a serializable class are themselves serializable. The serialization interface has no methods or fields and serves only to identify the semantics of being serializable.
[/quote]
:?
ps: trata-se de uma interface de “marcação”.[/quote]
A interface Serializable apenas “marca” a classe implementadora como passível de serialização. Ao se tentar serializar um objeto, a serialização dele só será aceita se a classe dele implementar Serializable.
A interface Serializable marca a classe como autorizada para ser serializada.
Em Java todos os objetos são possíveis de serializar. O método que faz isso usa reflection e um algoritmo bem simples e padrão. Mas por questões de segurança o algoritmo só deve serializar classes que se “autorizem” serializar. Por isso o algoritmo começa por verificar se a classe implementa Serializable. Se não, ele dá erro e para por ai. Se sim, ele continua. Como o algoritmo usa reflection o programador não tem que colocar nenhum método especial para serializar a classe , é tudo automático. Contudo , se ele quiser ,ele pode implementado métodos privados de seralização e des-serialização(veja no javadoc de Serializable o detalhe)