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 :

reflexion et type de retour des méthodes


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut reflexion et type de retour des méthodes
    Salut à tous !

    J'aimerai pouvoir utiliser la reflexion sur le type de retour de méthode afin de rendre plus générique les méthodes getObjetSuivant() et getTousLesObjets().

    Voici le code:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    import java.io.*;
    import java.util.*;
     
    public class DeserialisationObjets{
     
    	// Attributs
    	Class				classe;
    	FileInputStream 	fis;
    	ObjectInputStream	ois;
     
    	// Constructeur
    	public DeserialisationObjets(String URL, String classe) throws 	FileNotFoundException, 
    																	ClassNotFoundException,
    																	IOException {				
    			this.classe		= Class.forName(classe);
            	fis 			= new FileInputStream(URL); 	
                ois 			= new ObjectInputStream(fis);
    	}
     
    	//==========================================================================
     
    	// Méthodes
    	public classe.getName() getObjetSuivant() throws IOException {
    		classe.getName() objet = (classe.getName()) ois.readObject();				
    		return objet;
    	}
     
    	//==========================================================================
     
    	public Vector getTousLesObjets() throws IOException{
    		classe.getName() 	objet 			= null;
    		Vector				totaliteObjets	= new Vector();
    		while( objet = getObjetSuivant() !=null ){
    			totaliteObjets.addElement(objet);
    		}
    		return totaliteObjets;
    	}
     
    	//==========================================================================	
     
    	public void cloreLeFlux(){
    		ois.close();
    	}
     
    	public void reOuvrirLeFlux(){
    		ois = new ObjectInputStream(fis);		
    	}
    	//==========================================================================
     
    }

    bien entendu, cela ne marche pas
    les lignes directement incriminée sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classe.getName() objet = (classe.getName()) ois.readObject();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public classe.getName() getObjetSuivant() throws IOException {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          classe.getName()    objet          = null;
    Peut être pourrez vous me guider vers le comportement à adopter face à cette situation afin de pouvoir fixer un type générique à une variable ainsi qu'à une valeur de retour de méthode.

    J'aimerai également savoir si vous trouvez "sale" cette façon de fonctionner ou non.

    Merci à tous.

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classe.getName() objet = (classe.getName()) ois.readObject();


    La reflexion n'est pas claire dans ta tête . Je comprends ce que tu veux faire mais ca ne s'utilise pas comme cela. Lis un tutorial sur ce sujet avnt de te lancer dans l'aventure.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Oui, autant pour moi !!

    En réalité, ce que je souhaiterais faire, c'est l'équivalent de:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    import java.io.*;
    import java.util.*;
     
    public class DeserialisationObjets{
     
    	// Attributs
    	Class				classe;
    	FileInputStream 	fis;
    	ObjectInputStream	ois;
     
    	// Constructeur
    	public DeserialisationObjets(String URL, String classe) throws 	FileNotFoundException, 
    																	ClassNotFoundException,
    																	IOException {				
    			this.classe		= Class.forName(classe);
            	fis 			= new FileInputStream(URL); 	
                ois 			= new ObjectInputStream(fis);
    	}
     
    	//==========================================================================
     
    	// Méthodes
    	public classe getObjetSuivant() throws IOException {
    		classe objet = (classe) ois.readObject();				
    		return objet;
    	}
     
    	//==========================================================================
     
    	public Vector getTousLesObjets() throws IOException{
    		classe	 	objet 			= null;
    		Vector		totaliteObjets	= new Vector();
    		while( objet = getObjetSuivant() !=null ){
    			totaliteObjets.addElement(objet);
    		}
    		return totaliteObjets;
    	}
     
    	//==========================================================================	
     
    	public void cloreLeFlux() throws IOException{
    		ois.close();
    	}
     
    	public void reOuvrirLeFlux() throws IOException{
    		ois = new ObjectInputStream(fis);		
    	}
    	//==========================================================================
     
    }
    Alors bien entendu, ceci est également faux (erreurs de type: cannot find simbol class classe).

    En tout cas merci pour ta réponse et je vais me documenter plus en détail sur ce sujet, mais je reste toujours à l'écoute de vos remarques et conseils.

    @ +

Discussions similaires

  1. Type de retour des procédure Stockée
    Par Solaren dans le forum Débuter
    Réponses: 1
    Dernier message: 27/01/2012, 11h09
  2. Type de retour des surcharges d'opérateur
    Par syl1405 dans le forum C++
    Réponses: 8
    Dernier message: 16/06/2010, 17h22
  3. Type de retour des WebMethod
    Par oclone dans le forum Services Web
    Réponses: 2
    Dernier message: 11/06/2009, 15h57
  4. Réponses: 6
    Dernier message: 18/04/2009, 11h37
  5. Heritage et type de retour des methodes
    Par belfo dans le forum C++
    Réponses: 20
    Dernier message: 23/12/2006, 23h51

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