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;
}
}
- Quand dois-je implémenter l'
Serializable
interface? - Pourquoi fait-on cela?
- Cela donne-t-il des avantages ou une sécurité?
java
serialization
theJava
la source
la source
Réponses:
De De quoi parle ce truc de "sérialisation"? :
Alors, implémentez l'
Serializable
interface 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 souhaitez stocker ou envoyer un objet.
Il facilite le stockage et l'envoi d'objets. Cela n'a rien à voir avec la sécurité.
la source
Implémentez l'
Serializable
interface lorsque vous souhaitez pouvoir convertir une instance d'une classe en une série d'octets ou lorsque vous pensez qu'unSerializable
objet peut référencer une instance de votre classe.Serializable
Les classes sont utiles lorsque vous souhaitez conserver leurs instances ou les envoyer via un câble.Les instances de
Serializable
classes peuvent être facilement transmises. La sérialisation a cependant des conséquences sur la sécurité. Lisez Effective Java de Joshua Bloch .la source
La réponse à cette question est, peut-être étonnamment, jamais , ou de manière plus réaliste, uniquement lorsque vous y êtes obligé pour l'interopérabilité avec le code hérité . Voici la recommandation de Effective Java, 3e édition par Joshua Bloch:
L'architecte en chef d'Oracle, Mark Reinhold, a déclaré publiquement que la suppression du mécanisme de sérialisation Java actuel était un objectif à long terme.
Pourquoi la sérialisation Java est imparfaite
Java fournit dans le cadre du langage un schéma de sérialisation auquel vous pouvez adhérer en utilisant l'
Serializable
interface. Ce schéma présente cependant plusieurs défauts insolubles et doit être traité comme une expérience ratée par les concepteurs du langage Java.Que faire à la place
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é.
la source