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 :

[JDK1.5][Typage] Cast facultif ?


Sujet :

Langage Java

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut [JDK1.5][Typage] Cast facultif ?
    Je développe une application qui est compilée avec Java 1.5 (Eclipse 3.0).

    Le code suivant (Appli.getTraduction() retourne un Object) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s = (String)Appli.getTraduction("Häusser");
    Ne fonctionne pas s'il n'y a pas le cast comme cela :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s = Appli.getTraduction("Häusser");
    Mais le cast est automatique dans ce cas (depuis java 1.5) : à moins que je me trompe...

    Alors, où est l'astuce ? :

    Noël.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  2. #2
    duj
    duj est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 141
    Points : 474
    Points
    474
    Par défaut
    Ben je pensais que ca marchait qu'avec des listes déclarées comme pouvant contenir des String (si c'est pas le cas, je change de langage )
    Parfois, Google fait des miracles

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut


    ben moi il me semble que le cast n'est pas automatique.

  4. #4
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    Mais le cast est automatique dans ce cas (depuis java 1.5) : à moins que je me trompe...
    Alors, où est l'astuce ?
    L'astuce vient de la généricité, on fait dans un cas standard tu dois caster, si tu as utilisé la généricité tu peux ne pas caster par exemple :

    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
     
    Cas classique cast obligatoire :
     
    List liste = new ArrayList();
        String chaine = null;
        for(int i = 0; i < 50; i++) {
          chaine = "ok"+i;
          liste.add(chaine);
        }
     
        for (Iterator iter = liste.iterator(); iter.hasNext(); ) {
          System.out.println( (String) iter.next());
        }
     
     
    Maintenant avec la généricité cast facultatif :
     
     
    List<String> liste = new ArrayList();
        String chaine = null;
        for(int i = 0; i < 50; i++) {
          chaine = "ok"+i;
          liste.add(chaine);
        }
     
        for (Iterator<String> iter = liste.iterator(); iter.hasNext(); ) {
          System.out.println( iter.next());
        }
    Alors cast ou pas cast ca dépends de ce que tu utilise
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  5. #5
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Merci pour la précision.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

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

Discussions similaires

  1. [LG]Probleme sur l'identification de typage
    Par axelmeunier dans le forum Langage
    Réponses: 10
    Dernier message: 19/01/2004, 13h41
  2. CAST ou autre ?
    Par 74160 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/07/2003, 15h00
  3. CAST DATETIME ----> SMALLDATETIME
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/06/2003, 12h07
  4. traduction en delphi "reinterpreted cast"
    Par Chupakabra dans le forum Langage
    Réponses: 3
    Dernier message: 13/02/2003, 15h49
  5. [JB4][jdk1.4.1] erreur 750
    Par polo54 dans le forum JBuilder
    Réponses: 4
    Dernier message: 19/12/2002, 11h34

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