Que signifie le mot-clé "transient" en Java? [dupliquer]

Cette question a déjà une réponse ici:

  • Pourquoi Java a-t-il des champs transitoires? 13 réponses

J'ai vu quelque part


transient private TrackDAO trackDAO;

158
demandé sur P̲̳x͓L̳ 2011-03-09 15:13:35

3 réponses

, Google est votre ami - tout d'abord frappé - aussi, vous pouvez d'abord regarder ce sérialisation est.

Il marque une variable membre ne pas être sérialisé quand il est persistant à les flux d'octets. Lorsqu'un objet est transférées à travers le réseau, le l'objet doit être "sérialisé'. La sérialisation convertit l'objet état en octets série. Ces octets sont envoyés sur le réseau et l'objet est recréé à partir de ces octets. Membre variable marqué par le transitoire java mot-clé ne sont pas transférés, ils sont perdu intentionnellement.

Exemple à partir de là, légèrement modifié (merci @pgras):

public class Foo implements Serializable
 {
   private String saveMe;
   private transient String dontSaveMe;
   private transient String password;
   //...
 }
232
répondu schnaader 2013-05-27 15:27:16

Les variables transitoires en Java ne sont jamais sérialisées.

27
répondu Deepak 2018-09-17 13:39:30

Cela signifie que trackDAO ne doit pas être sérialisé.

9
répondu Erik 2011-03-09 12:14:59