Peut-on refuser à un objet java à partir de la sérialisation d'autres que de donner transitoire mot-clé
Nous pouvons éviter serialising champs à l'aide de la transient
mot-clé.
Est-il un autre moyen de le faire?
- j'ai eu cette question...en se demandant si on peut le faire via native ..
- Pour quel but? Pourquoi est transitoire n'est pas une bonne solution pour votre cas d'utilisation?
- la curiosité est toujours une raison valable.
- La question est toujours, pourquoi? Pourquoi le faire à travers un natif? @Robert-Muneanu Curiosité est toujours une raison valable pour poser une question, mais "Vous ne devriez pas faire cela" est souvent une réponse valable à la question.
- pas de.aucune importance pour..natif..laisser natives..
Vous devez vous connecter pour publier un commentaire.
http://java.sun.com/javase/6/docs/platform/serialization/spec/security.html
Voici quelques liens.
Déclarant serialPersistenetFields.
La sérialisation spécification de l'architecture.
La sécurité dans la Sérialisation d'un Objet.
static final
(c'est en supposant que la valeur est une constante)? c.f. stackoverflow.com/a/36132646/1168041Si pour une raison quelconque transitoire ne convient pas, vous pouvez le faire de la sérialisation directement en remplaçant la writeObject et readObject méthodes. Ensuite, vous pouvez inclure ou omettre les champs dont vous avez besoin.
C'est ce que transitoire de moyens comme un mot-clé. Son but est d'arrêter la sérialisation des données pour quelque raison que ce soit.
Si vous vouliez un grain plus fin de contrôle sur le processus, vous pouvez utiliser le writeObject/méthodes readObject que le ObjectOutputStream/ObjectInputStream utilisation en tant que partie du processus de sérialisation, et vous pouvez le combiner avec une partie personnalisée d'annotations ou de toute logique qu'on voulait.
Vous pouvez créer votre propre protocole avec la Externalizable interface, qui à mon avis est plus agréable que Serializable puisqu'il ne contient méthodes privées accroché par la JVM (
writeObject
etreadObject
). Au lieu de la mise en œuvre de laSerializable
interface, vous pouvez mettre en œuvreExternalizable
, qui contient deux méthodes:Contrairement à l'utilisation de
Serializable
rien n'est prévu pour libre maintenant, si. C'est, le protocole est entièrement entre vos mains, overring transitoire/non triansient champs, etc.