begin process at 2010 03 22 00:48:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Divers

 > 

Typage des variables


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Typage des variables

jeudi 26 janvier 2006 à 23:43:55 | Typage des variables

ketzaldev

Bonjour, j'ai un problème compliqué. Peut être pourrai-je trouver de l'aide parmis vous. Je m'explique : je voudrais fabriquer un objet sans avoir à spécifier son type en dur lorque que je tape mon code. Exemple : Je tape une classe : public class toto{ public String bob = new String("bob"); /* type */ socket; } est ce que l'on peut utiliser la classe Class pour faire un typage, ou alors on doit forcément le faire en dur. En fait l'objet que je recois viens d'une Hashtable, il est donc de type Object. Mon probleme est que je voudrais pouvoir lui appliquer ses méthodes. Seulement, au moment ou je recois mon objet de ma Hashtable, son type est dynamique(a l'instant i, c'est une socket et a l'instant j c'est une JFrame) en exagérant. Donc grande question comment typer dynamiquement j'ai essayé des (object.getClass())object = object; mais ca marche pas... Donc je suis desespere et je sais pas comment faire Merci de votre aide
vendredi 27 janvier 2006 à 06:53:12 | Re : Typage des variables

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Si tout tes objets ont des propriétés communes (par exemple : si ca peut être un chien, un chat, un cheval ou une poule, tous peuvent marcher, courir, manger, etc., et ils peuvent être vu comme des animaux), alors je te conseille d'utiliser une interface animal qui sera implémenté par tes quatres classes (chien, chat, etc.), et ainsi, tu pourra facilement appliquer des fonctions sur le type animal et non plus chien, chat, etc. C'est l'approche objet de java au niveau du polymorphysme.

_____________________________________________________________________

vendredi 27 janvier 2006 à 09:01:31 | Re : Typage des variables

ketzaldev

Le probleme est que l'objet peut aussi bien etre une socket ou alors une JFrame ou alors un AbstractDocument...

C'est ca le probleme :(

C'est pour ca que je voudrais savoir si on peut faire un typage dynamique.
Merci pour ta reponse :)

vendredi 27 janvier 2006 à 11:24:26 | Re : Typage des variables

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

tu peux t'aider de l'objet Class et des classes de réflexion (ref:java.lang.reflect.*)

WORA
vendredi 27 janvier 2006 à 12:50:45 | Re : Typage des variables

ketzaldev

J'ai deja essayé...

A tu une idée précise de ce qu'il faudrai faire Wora ou alors aucunes?
vendredi 27 janvier 2006 à 21:49:37 | Re : Typage des variables

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

voici deux exemple différent en esperenant que cela te donne une idée de ce que tu peux faire
(pour la deuxieme methode je ne me sert que des constructeurs par defaut)

import java.lang.reflect.Method;

import javax.swing.JDialog;
import javax.swing.JFrame;

public class Test {

    public Test(Object obj){
        if(obj instanceof JFrame){
            ((JFrame)obj).setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            ((JFrame)obj).setSize(300,300);
            ((JFrame)obj).setLocationRelativeTo(null);
            ((JFrame)obj).setVisible(true);
        }else if(obj instanceof JDialog){
            ((JDialog)obj).setTitle("JDialog 1");
            ((JDialog)obj).setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
            ((JDialog)obj).setSize(300,300);
            ((JDialog)obj).setLocationRelativeTo(null);
            ((JDialog)obj).setVisible(true);
        }else if(obj instanceof StringBuilder){
            ((StringBuilder)obj).append("hello");
            ((StringBuilder)obj).append(" world");
            System.out.println((StringBuilder)obj);//implicite
        }else{
            System.out.println("Il n'y a pas de correspondance");
        }
       
    }
   
   
    public static void main(String[] args) {
        JFrame f = new JFrame("Frame 1");
        JDialog d = new JDialog();
        StringBuilder s = new StringBuilder("");
        new Test(f);
        new Test(d);
        new Test(s);
       
        jframe();
        jdialog();
    }
   
    private static void jframe(){
        try {
            //chope la classe
            Class c = Class.forName("javax.swing.JFrame");
            //creer une instance sur la classe
            Object frame = c.newInstance();
           
            //Ajoute un titre
            Method m = frame.getClass().getMethod("setTitle", new Class[]{String.class});
            //invocation de la methode avec le petit titre
            m.invoke(frame,new Object[]{"JFrame 2"});
           
            //pour fermer la fenetre :)
            m = frame.getClass().getMethod("setDefaultCloseOperation", new Class[]{int.class});
            m.invoke(frame,new Object[]{JFrame.EXIT_ON_CLOSE});
           
            //une petite taille pour le plaisir
            m = frame.getClass().getMethod("setSize", new Class[]{int.class, int.class});
            m.invoke(frame,new Object[]{300,300});
           
            //affiche la fenetre
            m = frame.getClass().getMethod("setVisible", new Class[]{boolean.class});
            m.invoke(frame,new Object[]{true});
        }catch (Exception e) {
            e.printStackTrace();
        }
    }
   
    private static void jdialog(){
        try {
            //chope la classe
            Class c = Class.forName("javax.swing.JDialog");
            //creer une instance sur la classe
            Object dialog = c.newInstance();
           
            //Ajoute un titre
            Method m = dialog.getClass().getMethod("setTitle", new Class[]{String.class});
            //invocation de la methode avec le petit titre
            m.invoke(dialog,new Object[]{"JDialog 2"});
           
            //pour fermer la fenetre :)
            m = dialog.getClass().getMethod("setDefaultCloseOperation", new Class[]{int.class});
            m.invoke(dialog,new Object[]{JDialog.EXIT_ON_CLOSE});
           
            //une petite taille pour le plaisir
            m = dialog.getClass().getMethod("setSize", new Class[]{int.class, int.class});
            m.invoke(dialog,new Object[]{300,300});
           
            //affiche la fenetre
            m = dialog.getClass().getMethod("setVisible", new Class[]{boolean.class});
            m.invoke(dialog,new Object[]{true});
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

}



WORA


Cette discussion est classée dans : variables, type, objet, object, typage


Répondre à ce message

Sujets en rapport avec ce message

Type STATIC (n°2) [ par BSide ] Bonsoir,j'ai un problème de compréhension du caractère "static" d'une variable ou d'une méthode. Je ne comprends pas vraiment à quoi ça sert. En quoi type "global" en VB, comment en java? [ par Pratana ] Je débute en java à partir du visual basic (pas le mieux)J'arrive à afficher une nouvelle fenetre et je veux rapatrier mes donnés vers le programme pa Trabstypage Object -> Int [ par Bozz0 ] Bonjour,J'ai besoin de récupérer un élément d'une combo box (à l'aide de getSelectedItem() qui retourne un Objet) pour initialiser une date ( java.uti Programmation java et type Object [ par fred240683 ] BonjourJ'aimerais recupérer un element d'un vecteur vect et le mettre dans une variable de type int de la manière suivante: int w; w=vect.elementAt(0) conversion Pixels[] en objet de type Image [ par sehenokely ] Salut à tous ! Je ne sais pas comment obtenir un objet Image à partide son tableau de pixels !J'ai regardé dans la classe PixelGrabber, cela peut se f 2 questions. (Graphics et print) [ par kinnex91 ] Salut, Peut t'on récupérer la Dimension d'un objet de type Graphics ou Graphics2d Lorsque la methode setPrintable appel la methode print(Graphics g, Trouver le type d'un objet [ par gcorbineau ] Bonjour a tous,Je suis débutant en JAVA, et j'aimerai connaitre comment on peut récuperer le type d'un objet.Merci type Object [ par darkkakashi49 ] Bonjour ayant une application a réalisé lors de ma requête à la base PostGreSql, celle-ci me retourne un Object[][] pour pouvoir l'utilisé il faudrait Un objet de type interface??? [ par mimou01 ] SalutEn fouillant dans un certain code (correct) j'ai trouvé un objet de type interface ;Supposons que cet interface s'appelle I et l'objet O;j'ai tro Cast Object vers ArrayList<String> java1.5 [ par el_teedee ] Salut à tous,voilà, je comprend pas vraiment (juste un peu en fait) les générics en java 1.5.Contexte : je mets une ArrayList dans ma session J2EE, et


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales