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;
}
}
Serializable
?De Qu'est-ce que cette "sérialisation"? :
Il vous permet de prendre un objet ou un groupe d’objets, de les placer sur un disque ou de les envoyer par un mécanisme de transport filaire ou sans fil, puis inverser le processus ultérieurement, peut-être sur un autre ordinateur: revenez à l’objet ou aux objets d’origine. Les mécanismes de base consistent à aplatir un ou plusieurs objets en un flux de bits unidimensionnel et à reconvertir ce flux en un ou plusieurs objets originaux.
Comme dans Transporter on Star Trek, il s’agit de prendre quelque chose de compliqué et de le transformer en une séquence plate de 1 et de 0, puis de prendre cette séquence de 1 et de 0 (éventuellement à un autre endroit, éventuellement à un autre moment) et de reconstruire l’original complexe " quelque chose."
Donc, implémentez l'interface Serializable
lorsque vous avez besoin de stocker une copie de l'objet, envoyez-les à un autre processus qui s'exécute sur le même système ou sur le réseau.
Parce que vous voulez stocker ou envoyer un objet.
Cela facilite le stockage et l'envoi d'objets. Cela n'a rien à voir avec la sécurité.
Implémentez l'interface Serializable
lorsque vous souhaitez pouvoir convertir une instance d'une classe en une série d'octets ou lorsque vous pensez qu'un objet Serializable
pourrait référencer une instance de votre classe.
Les classes Serializable
sont utiles lorsque vous souhaitez en conserver des instances ou les envoyer par un fil.
Les instances de Serializable
classes peuvent être facilement transmises. La sérialisation a cependant des conséquences sur la sécurité. Lisez Joshua Bloch's Effective Java.
La réponse à cette question est peut-être étonnamment jamais , ou plus réaliste, uniquement lorsque vous êtes obligé de interopérabilité avec le code hérité . Voici la recommandation de Effective Java, 3ème édition par Joshua Bloch:
Il n'y a aucune raison d'utiliser Java la sérialisation dans un nouveau système que vous écrivez).
L’architecte en chef d’Oracle, Mark Reinhold, est en cours d’enregistrement selon lequel la suppression du mécanisme de sérialisation actuel Java est un objectif à long terme.
Java fournit dans le langage un schéma de sérialisation auquel vous pouvez vous connecter, en utilisant l'interface Serializable
. Ce schéma présente toutefois plusieurs failles intraitables et doit être traité comme une expérience manquée par les concepteurs de la langue Java.
Utilisez plutôt un schéma de sérialisation que vous pouvez contrôler explicitement. Tels que les tampons de protocole, JSON, XML ou votre propre schéma personnalisé.