IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Interface de marquage (Cloneable, Serializable..)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2002
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 224
    Par défaut Interface de marquage (Cloneable, Serializable..)
    Juste pour info :

    A quoi servent les Interfaces de marquage?
    Si possible, me donner es exemples concret d'utilisation.

    Merci.

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Ces interfaces ne servent à rien , mais juste pour préciser qu'un object rentre dans certaines conditions.
    Dans le cas de la sérialization des objets, la classe ObjectOutputStream...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (altobj != null && ! (altobj instanceof Serializable)) {
      String clname = altobj.getClass().getName();
      throw new NotSerializableException(clname);
    }

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Regle generale : une interface sert principalement a definir un type auquel on peut optionnellement attacher des signatures de methodes ou des constantes. Une interface ne definie pas un comportement, en effet il n'est pas possible de mettre du code dans une interface.

    Pour definir un comportement generique, il faut utiliser une classe abstraites.

    => la methode clone() peut etre uniquement appelee sur des objets de type Cloneable. La serialisation peut uniquement s'effectuer sur des objets de type Serializable.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Par défaut définition de la methode clone()
    Citation Envoyé par bouye
    => la methode clone() peut etre uniquement appelee sur des objets de type Cloneable. La serialisation peut uniquement s'effectuer sur des objets de type Serializable.
    Petite question au sujet de clone():

    pourquoi peut-on définir une methode clone() du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public Object clone() throws CloneNotSupportedException
    {...}
    ...Et si c'est pas bien, pourquoi?...

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par mysteriousFreak
    pourquoi peut-on définir une methode clone() du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public Object clone() throws CloneNotSupportedException
    {...}
    Pourquoi ne pourrait-on pas définir une tel méthode ???

    Citation Envoyé par mysteriousFreak
    ...Et si c'est pas bien, pourquoi?...
    Pourquoi cela ne serait-il pas bien ???



    Un peu plus de détail sur ta question serait peut-être utilise...

    a++

  6. #6
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Par défaut
    Citation Envoyé par adiGuba
    Pourquoi ne pourrait-on pas définir une tel méthode ???
    ...Je voulais dire sans implémenter l'interface Cloneable

    Bon, ok, on peut définir une methode quelconque, là-dessus OK, mais en fait il me semblait que normalement on ne définissait cette methode qu'en implémentant l'interface Cloneable... du moins pour faire des choses propres, d'autant que d'apres la Javadoc:
    "Invoking Object's clone method on an instance that does not implement the Cloneable interface results in the exception CloneNotSupportedException being thrown."

    J'ai vu ce genre de trucs (clone() sans Cloneable), ça semble marcher, mais je trouve ça un peu étrange vu la Javadoc...

    Citation Envoyé par adiGuba
    Pourquoi cela ne serait-il pas bien ???
    Je voulais dire sans l'interface Cloneable, c'est pas très propre il me semble... non?...

    PS: t'as raison, c'était quand meme pas très clair ma question, désolé, j'éspère que c'est mieux cette fois-ci

Discussions similaires

  1. Interface de marquage et Enum
    Par brachior dans le forum C#
    Réponses: 23
    Dernier message: 28/06/2011, 11h59
  2. entité jpa et interface serializable
    Par anja87 dans le forum JPA
    Réponses: 1
    Dernier message: 11/11/2010, 13h08
  3. [Débutante] L'interface Serializable
    Par 3asfoura dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 22/02/2008, 12h40
  4. Problème avec l'interface java.io.serializable.
    Par mitje dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 26/01/2006, 04h19
  5. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo