2012-04-08 4 views
-1

Je passais par un article qui stipule .. Si Super classe d'une classe implémente déjà l'interface Serializable en Java, alors il est déjà sérialisable en Java, puisque vous ne pouvez pas désimplémenté une interface, il n'est pas vraiment possible de le rendre non sérialisable classe mais oui il y a un moyen d'éviter la sérialisation de la nouvelle classe. Pour éviter la sérialisation java, vous devez implémenter la méthode writeObject() et readObject() dans votre classe et vous devez lancer NotSerializableException à partir de ces méthodes. Ceci est un autre avantage de la personnalisation du processus de sérialisation java tel que décrit dans la question ci-dessus et normalement il est posé comme question de suivi au fur et à mesure de l'entretien.contrôle sérialisation

Ex .. il y a une superclasse ..

class Animal implements Serializable 
{ 
int weight = 42; 
} 

and there is a subclass... 

class Dog extends Animal 
{ 
    private void writeObject(ObjectOutputStream o) 
          throws IOException, ClassNotFoundException 
    { 
     //throw nonserializable exception 
    } 

    private void readObject(ObjectInputStream o) 
     throws IOException, ClassNotFoundException 
    { 
      //throw nonserializable exception 
    } 

} 

Pourriez-vous s'il vous plaît me conseiller comme on le voit ci-dessus en classe chien à l'intérieur readObject() et writeObject(), Comment pourrais-je écrire le code qui indique jeter l'exception non-sériliable .. est-il comme jette une exception non-sériliable ... s'il vous plaît conseiller

Répondre

1
class Dog extends Animal 
{ 
    private void writeObject(ObjectOutputStream o) 
          throws IOException, ClassNotFoundException 
    { 
     throw new NotSerializableException(); 
    } 

    private void readObject(ObjectInputStream o) 
     throws IOException, ClassNotFoundException 
    { 
     throw new NotSerializableException(); 
    } 

} 
+0

À la lumière de l'existence de la question, je suggère de lire sur les exceptions et la gestion des exceptions. – trutheality

+0

Merci beaucoup, s'il vous plaît aviser avons-nous besoin d'un bloc catch aussi .. !! – Neera

+1

Pas ici. Le point de jeter une exception ici est de rendre impossible de sérialiser 'Dog'. C'est le code qui essaie de sérialiser l'objet qui devrait attraper l'exception. – trutheality