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 :

récupération de l'objet instanciant un autre objet


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut récupération de l'objet instanciant un autre objet
    Bonjour à tous,

    Après plusieurs recherches sur le net je n'ai pas réussi trouvé de réponse satisfaisante.

    Est-il possible pour un objet (depuis sa classe) de récupérer l'objet qui l'a instancié?

    Dans cet exemple, est-il possible pour b de récupérer a?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class A{
        public B b;
     
        public A(){
             b = new B();
        }
     
        public static void main(){
            A a = new A();
        }
    }

    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Par défaut
    A ma connaissance le seul moyen de faire ça serait de le passer en paramètre au constructeur.
    La JVM fournit l'information des objets qui empêchent un objet d'être collecté mais pas l'information de quel objet en a instancié un autre.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    J'avais déjà imaginé cette solution qui ne me satisfait pas vraiment. Je vais encore réfléchir à la question même si je crains de devoir finalement opter pour cette solution.

    En tous cas, Merci pour la réponse.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Quel est le besoin sous jacent derrière. On a régulièrement besoin en java de connaitre l'objet vers lequel reporter des notifications, mais extrêmement rarement de connaître l'objet qui instancie. Le seul cas que je connaisse c'est en cas de fuite mémoire, pour savoir qui a instancié des objet comme un dingue. Et là ce n'est pas l'appelant mais toute la pile appelante dont on a besoin et c'est géré par les outils de debugging type profilers. Ce n'est pas au code de le faire.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    Bonjour tchize_,

    l'idée est que l'objet B a besoin d'interagir avec d'autres objets instanciés par l'objet A, ce que j'appellerai son 'environnement', hors il n'y a que l'objet A qui ait connaissance de cette 'environnement'.

    J'aurai voulu pouvoir développer une méthode dans la classe B capable de demander à l'objet A de lui fournir cet 'environnement'. Comme proposé, je pourrai passer la référence de A à la construction de B ou gérer une liste des objets instanciés dans A et la fournir à la construction de B.

    Je cherche juste l'éventail de solutions offertes.

    Si vous avez des idées, je suis preneur.

    Merci

  6. #6
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Salut,

    Si la classe A représente ton "environnement", alors je ne vois pas vraiment ce qui te gène à donner une référence vers tes objets B.

    Maintenant si A est simplement une classe utilitaire qui sait instancier des objets B, alors tu devrais passer par un système d’événement.

    Tes instances de B s'enregistrent dans un contrôleur qui sera chargé de notifier les objets qui le souhaite qu'une modification a eu lieu.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/04/2008, 10h41
  2. [POO] Gérer des objets associés à d'autres objets
    Par metos00 dans le forum Langage
    Réponses: 1
    Dernier message: 07/10/2007, 22h00
  3. Position d'objet dans un autre objet
    Par Speed41 dans le forum Delphi
    Réponses: 14
    Dernier message: 20/02/2007, 20h51
  4. Réponses: 7
    Dernier message: 10/02/2007, 05h41
  5. Réponses: 6
    Dernier message: 08/09/2004, 12h35

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