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

avec Java Discussion :

Méthode ne met pas à jour un objet


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut Méthode ne met pas à jour un objet
    Bonsoir à tous,

    Je débute en Java et en Orienté Objet et dans le cadre d'un projet j'ai besoin de mettre à jour la valeur d'un objet via une méthode static.

    Je poste ci-dessous un exemple similaire à mon coder pour expliquer plus facilement mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class TestInteger {
    	private Integer i;
     
    	public TestInteger() {
    		i = new Integer(1);
    		System.out.println(i); // -> 1
    		setValue();
    		System.out.println(i); // -> 1
    	}
     
    public void setValue() {
    		IntegerLoader.loadInteger(i);
    	}
     
    public static void main(String[] args) {
    	new TestInteger();
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class IntegerLoader {
     
    	public static void loadInteger(Integer i) {
    		i = new Integer(2);
    	}
    }
    Mon problème est que je souhaite mettre à jour la valeur d'un objet (i, ici) via setValue() qui appelle une méthode static d'une autre classe.

    Or la valeur de i n'est que changée localement dans la méthode loadInteger() et dans mon véritable code, je n'ai pas la possibilité de faire de return.

    La seconde classe ne possédant pas de constructeur et n'étant pas destinée à en posséder un, je ne sais pas comment m'y prendre pour que la valeur de mon objet i soit bien mise à jour dans la classe appelante.


    Merci d'avance,
    Zedd.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Par défaut
    Bonjour,

    Tu ne peux pas faire de passage par référence d'un Integer en Java.
    Il te faudra changer ton approche...

    Mathieu

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut
    J'aimerais bien mais je ne vois pas comment ?

    J'ai impérativement besoin que cet objet soit instancié et mis à jour là où c'est fait et n'ai pas le droit à un return.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Par défaut
    Si tu ne peux pas modifier la classe IntegerLoader tu n'as pas d'alternative...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Par défaut
    Je devrais faire quoi concrètement ?

    Lui ajouter un constructeur ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Par défaut
    Ben si tu peux modifier cette classe autant mettre le "return" qui te manque
    Un constructeur n'y changera rien...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Par défaut
    Integer est une classe immuable. Une fois instancée tu ne peux lui réassigner de valeur. Si tu tiens à ton approche du 1er poste tu peux utiliser AtomicInteger.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class IntegerLoader {
     
    	public static void loadInteger(AtomicInteger i) {
    		i.set(2);
    	}
    }

Discussions similaires

  1. [Débutant] Mise à jour du modèle ne met pas à jour les méthodes de fabrique
    Par sylvebarbe78 dans le forum Entity Framework
    Réponses: 2
    Dernier message: 11/03/2013, 18h35
  2. Mise à jour du modèle ne met pas à jour les méthode de fabrique
    Par killer_pingoui dans le forum Entity Framework
    Réponses: 2
    Dernier message: 15/01/2013, 15h56
  3. [AJAX] XMLHTTPREQUEST ne se met pas à jour :-/
    Par franckarts dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/08/2006, 18h11
  4. Update Récalcitrante !! Ne met pas à jour !
    Par samlepiratepaddy dans le forum Access
    Réponses: 14
    Dernier message: 28/10/2005, 09h31
  5. un update qui ne met pas à jour
    Par dor_boucle dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/10/2005, 09h31

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