Accueil > Forum > > > > Typage des variables
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
|
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|