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 :

Liste d'éléments interdits ?


Sujet :

avec Java

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Liste d'éléments interdits ?
    Bonjour
    Le compilateur Java me refuse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ArrayList<long> ListHidDB;
    Iterator<long> itSegment;
    comme si on avait pas le droit de manipuler des listes des types de base?
    Si il faut les englober dans une classe, c'est lourd!!!!

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    les type de base ne sont pas des objet, ils ne sont donc pas manipulables en tant que tels et donc ne peuvent servir dans des generics. Maintenant, ce processus n'est pas lourd, java s'en sort très biens avec

  3. #3
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut il faut donc que je créer une classe Long
    je vais coder
    Class Long
    {
    long ?this?
    }

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    il y a déjà un classe Long dans java! Tous les types de base on leur classe associée et, depuis java 5, le compilateur fait de l'autoBoxing. Vous pouvez donc écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Long> maListe = ....;
    maListe.add(444719);
    System.out.println("premier élément au carré: "+(maListe.get(0)*maListe.get(0)));

  5. #5
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    tu peux utiliser l'objet java.lang.Long (objet encaspulant le type primitif long)

    Il existe de vrai objet pour chaque type primitif (la plupart du temps il suffit de remplacer la premiere lettre et de la mettre en majuscule, a par pour int qui devient Integer et char qui devient Character)

    A partir de Java 5 tu pourra utilisé ces objets de facon transparente (presque) comme les types primitifs. Il faudra juste eviter quelques piège. Je te laisserai chercher des explications concernant l'"autoboxing"
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  6. #6
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Merci pour le lien
    Bonjour
    Je n'y ai cependant pas trouve de pièges décrits....
    Quoi qu'il en soit ca donne une réponse à ma question.
    à+

  7. #7
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    Les pièges sont souvent des problèmes de performance engendré par l'utilisation abusive de l'autoboxing.

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Integer sum = 0;
    for (Integer i = 0; i < 10; i++) {
        sum += i;
    }
    Dans ce code, toutes les opérations nécessite une conversion de Integer vers int et vice versa. Cela entraine donc un surcout inutile.
    L'exemple est un peu caricatural mais réel.

    J'ai également vu des exemples de code provoquant des comportements surprenant. Par contre je ne me souvient ni de l'exemple ni de la source
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Integer a = 57;
    Integer b = 57;
    Integer c = 2044;
    Integer d = 2044;
     
    if (a==b)
     // vrai
    if (c==d)
     // faux

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 10/08/2006, 17h22
  2. [MySQL] Liste d'éléments même si il manque des liens
    Par samyboy dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/07/2006, 15h40
  3. [VB]Ja'imerais afficher une liste d'éléments...
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2006, 18h49
  4. [struts] afficher page par page une liste d'élément
    Par BurningPat dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/09/2005, 11h09
  5. [Forms] : liste d'éléments
    Par JuRu dans le forum Forms
    Réponses: 3
    Dernier message: 01/06/2004, 12h18

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