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 :

Problème de cast non explicite


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Points : 14
    Points
    14
    Par défaut Problème de cast non explicite
    Bonjour à tous ! (encore moi oui j'ai bien eu deux petit soucis aujourd'hui)

    Alors maintenant, j'ai un problème de cast, je viens de me rendre compte que une méthode renvoi un Object (ou un conteneur).
    A partir de cette Object, on fait un petit .getClass().getName() et on a le type du l'Object.
    Je me demande comment pouvoir cast cet Object en son type réel que l'on a en .getClass().getName()

    Donc si vous avez pas bien compris (oui oui j'explique un peu mal)
    Voici voilà, un exemple de code, et ce que j'aimerais pouvoir faire :

    Ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	static final public void build(final ConfigUI configUI) {
    		System.out
    				.println(configUI.getFrame().getLayout().getClass().getName());
    Donc pour explication, ma ConfigUI c'est l'User Interface qui contient une frame, cette dernière peut être getFrame()
    le problème, c'est que cette frame contient ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GridLayout gridLayout = new GridLayout(4, 1, 5, 5);
    		frame.getContentPane().setLayout(gridLayout);
    Ce que j'aimerais avoir c'est le GridLayout sauf que :
    Quand je fais ça, j'ai pas un GridLayout mais un LayoutManager
    Et là le problème c'est que le printf m'affiche bien que c'est un java.awt.BorderLayout, mais je peux pas utiliser de setRows() qui n'est spécifique qu'à un java.awt.BorderLayout.
    ce que j'aimerais faire c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		//cast bien gros bien sale
    		((configUI.getFrame().getLayout().getClass().getName())configUI.getFrame().getLayout()).setRows(5);
    Sauf que bien évidemment ça marche pas bien.

    Et c'est pas faute de ne pas avoir cherché sur google !

    Alors si vous pouvez m'aider, j'aimerais savoir si :
    Il y a une manière simple de cast un Object en son "type réel" (j'entend par là ce que l'on voit quand on syso(object.getClass().getName()) ; )

    Voilà, si il y a effectivement un truc comme ça, ça pourrait être sympa !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par thebossbest Voir le message
    Il y a une manière simple de cast un Object en son "type réel" (j'entend par là ce que l'on voit quand on syso(object.getClass().getName()) ; )
    Ca n'a pas de sens. Le principe d'un cast est de convertir l'objet vers un type connu au moment de la compilation, afin de pouvoir appeler les méthodes offertes par ce type dans la suite du programme.

    Donc, si tu veux utiliser les méthodes de BorderLayout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BorderLayout borderLayout = (BorderLayout)configUI.getFrame().getLayout();
    borderLayout.setRows(5);
    Voilà pour ce qui est faisable en théorie.

    Mais ce qu'il faut faire en pratique est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    configUI.setLayoutRows(5);
    "Mais il n'y a pas de méthode setLayoutRows() dans ConfigUI !"
    Et tout l'intérêt d'être un développeur, c'est le pouvoir de faire que cette méthode qui n'existait pas avant, existe maintenant.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Haha ok, mais oui en plus ce serait illogique en effet !

    Whaou, je cherche vraiment compliqué des fois !
    Compliquer alors que l'on peut faire si simplement !

    Merci pour la réponse rapide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Problème avec un cast non valide
    Par jacko842 dans le forum Débuter
    Réponses: 0
    Dernier message: 10/07/2012, 16h26
  2. problème avec if, recherche non explicite
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 26/09/2008, 13h51
  3. Problème de cast/serialization/externalization ?
    Par Linlin dans le forum CORBA
    Réponses: 1
    Dernier message: 06/12/2004, 16h46
  4. [C#] Problème de casting de @IDENTITY
    Par bilb0t dans le forum Accès aux données
    Réponses: 7
    Dernier message: 03/09/2004, 09h42
  5. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00

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