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
[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|