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 :

feinter l'attribut private lors de l'heritage


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut feinter l'attribut private lors de l'heritage
    mon probléme est le suivant je souhaite utiliser une classe mais que l'une de ses méthodes change ...

    Il me faudrait un sorte d'hyper objet qui engloberait l objet en lui retransmetant toute les méthodes !!!

    l'héritage n'est pas possible car beaucoup de méthodes interne à la classe que je veux englober sont private

    si vous avez des solutions ou même juste des pistes ou des idees je prend

  2. #2
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par LittleBean
    beaucoup de méthodes interne à la classe que je veux englober sont private
    Alors là, quoi ce soit par héritage ou aggrégation (ou une autre technique) : l'utilisation d'une méthode "private" est limitée au contexte d'exécution de la classe !...
    Pas moyen de simplement changer leur visibilité en "protected" à des fins dhéritage ?

  3. #3
    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,


    Pourrais-tu être plus précis sur ton problème et ce que tu veux faire exactement ?

    a++

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Je pense avoir compris ce qu'il veut, c'est "englober" la classe c'est à dire hériter mais de la totalité...
    Si c'est ça, effectivement voir pour passer en protected. Si ce n'est pas ton code et pas possible, ya éventuellement moyen de créer des méthodes dans ta nouvelle classe qui en runtime appelle celle de la classe parent en changeant les visibilités (oui, c'est "crade")

  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
    Citation Envoyé par chtig
    Je pense avoir compris ce qu'il veut, c'est "englober" la classe c'est à dire hériter mais de la totalité...
    Si c'est ça, effectivement voir pour passer en protected. Si ce n'est pas ton code et pas possible, ya éventuellement moyen de créer des méthodes dans ta nouvelle classe qui en runtime appelle celle de la classe parent en changeant les visibilités (oui, c'est "crade")
    Justement : je ne veux pas savoir "comment" il veut le faire, mais "pourquoi" ?
    Grosso-modo je veux savoir quel est son besoin...

    Il y a surement de meilleurs solutions mais comme on ne sait pas ce qu'il veut faire...

    a++

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    j'ai été bien imprécis il est vrais ....

    j'utilise l api pour beanshell, j ai fait une application en récupérant les codes sources.
    pour que mon aplli fonctionne j ai modifié les acces et fonction de certaine classe j'ai justement passé à public/ protected ou autre

    le truc c que je souhaite pouvoir maintenir mon appli indépendament de l'évolution des package bsh. Les classes dont j ai modifé les acces sont des classes importantes de l api et qui seront probablement modifié à chaque évolution.

    ma solution serait d'utiliser une sorte de classe proxy (une pseudo copie) qui retransmet tout à une classe si elle ne peut traiter la méthode.

    Je m'explique :

    Soit A la classe :
    avec une méthode private toto();
    Soit B la classe "proxy"
    avec une méthode titi();

    je souhaite programmer B de telle façon que :

    B.titi() fonctionne et B.toto() appel A.toto()

    en gros ce serait feinter l 'héritage ...

  7. #7
    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
    Ben à part la reflection et le casser l'accès vis setAccessible() je ne vois pas trop...

    Mais encore une fois tu nous expliques le "comment" mais pas le "pourquoi" !

    Pourquoi fais-tu cela ? Et en quoi un simple héritage ne peut pas faire l'affaire ?

    a++

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    merci de vous intérésser

    le pourquoi :

    je souhaite pouvoir récuperer l'archive jar de bsh sans avoir à récupérer le code source puis le modifier afin de l adapter .

    dans les prochaines version les attributs seront private (je n'ai pas de statut de dévelopeur ouaautre sur ce projet ) et donc un simple héritage ne fonctionnera pas

  9. #9
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    J'imagine assez facilement qu'il veut rajouter des fonctionnalités à certaines classes, mais que les développeurs de l'api bsh ne l'ont peut être pas prévu, mettant donc pas mal d'attributs/methodes en private et non en protected

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperer les attributs private
    Par ymorjan dans le forum Général Java
    Réponses: 1
    Dernier message: 23/03/2012, 19h23
  2. Attribut class lors de l'affichage de Zend_Navigation
    Par FERDIKAM dans le forum Zend Framework
    Réponses: 2
    Dernier message: 17/08/2010, 11h13
  3. stockage objet session avec attribut private : KO
    Par kaboume dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2007, 12h32
  4. Comment récupérer la valeur d'un attribut private ?
    Par TocTocKiéLà? dans le forum C++
    Réponses: 2
    Dernier message: 29/07/2007, 12h16
  5. attribut private d'une classe
    Par poukill dans le forum C++
    Réponses: 7
    Dernier message: 24/07/2006, 12h50

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