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 :

Sécurité de type


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Points : 110
    Points
    110
    Par défaut Sécurité de type
    Je cherche a faire une JTable d'un ensemble de String rangé dans un Vector.
    Je me suis donc fait une classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VecteurPourTable<T> extends Vector<Vector<T>>
    Ainsi, je me crée un vecteur de vecteur mon initialiser ma JTable
    J'ai aussi une méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    load(Vector<T> vecteur)
    qui me transforme un Vecteur ligne en vecteur de vecteur.
    mon code:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    public class VecteurPourTable<T> extends Vector<Vector<T>>
    {
    /*---------------------------*/
    /* VecteurPourTable(void)    */
    /* Constructeur de la classe */
    /*---------------------------*/
      VecteurPourTable() {...}
     
      /*--------------------------------------*/
      /* void load(Vector<T> vecteur          */
      /* initialise la classe avec ce vecteur */
      /*--------------------------------------*/
      void load(Vector<T> vecteur)
      {
        // on est obligé de le déclarer en dehors des boucles à cause de la portée de la variable
        int index; 
        clear();
        for(index=0;index<vecteur.size();index++)
        {
          Vector<T> vecteurTemp=new Vector<T>();
          // on ajoute la valeur null pour créer la première valeur du vecteur et pouvoir lamodifier ensuite
          vecteurTemp.add(null);
          vecteurTemp.set(index,vecteur.get(index));
          add(vecteurTemp);
        }
        // si @vecteur est de taille inferierure à 10 on remplis le reste de la classe avec la valeur null
        while(index<10) 
        {
          Vector<T> vecteurTemp=new Vector<T>();
          vecteurTemp.add(null);
          add(vecteurTemp);
          index++;
        }
        return;
      }
    }
    Ensuite, lorsque je l'appel j'ai ce warning:
    Sécurité de type : La méthode load(Vector) appartient au type brut VecteurPourTable. Les références au type générique VecteurPourTable<T> doivent être paramétrées.
    ???!! help, je veut pas utiliser -Xlint!

  2. #2
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    C'est normal que ta méthode load ne soit pas public?

  3. #3
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Points : 110
    Points
    110
    Par défaut
    G oublier de le mettre, mais de toute façon je veut une méthode de type package (qui, il me semble est l'attribut par défaut).
    J'ai éssayé de mettre public mais g le même warning.
    J'ai pensé mêttre un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void load(<Y extends Vector<T> vecteur)
    car lorsque je l'appel, l'argument est une classe dérivée de Vector<T>!
    Z'avez une idée?

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu devrais employer des ArrayLists à la place des Vector.

    Sinon, pour ton problème, à quelle ligne exactement se trouve ton warning ? Sur la ligne de déclaration ou lors d'un appel ?

  5. #5
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Points : 110
    Points
    110
    Par défaut
    J'ai pensé aux ArrayList mais pour initialiser une JTable il faut un Vector.
    J'ai une classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ensemble extends Vector<String>
    Mon warning se trouve ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    VecteurPourTable<String> v=new VecteurpourTable<String>();
    Ensemble e=new Ensemble();
    e.add("essais");
    v.load(e);
    //warning sur la ligne ci dessus

  6. #6
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    e n'est pas typé c'est pour ça que tu as un warning()

    Il te faudrait quelque chose de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ensemble<T> e=new Ensemble<T>();

  7. #7
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Points : 110
    Points
    110
    Par défaut
    non ca marche pas, j'ai éssayé

  8. #8
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Citation Envoyé par arasium
    non ca marche pas, j'ai éssayé

    Ah oui il faut aussi que ta classe Ensemble soit déclaré avec <T>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ensemble<String> extends Vector<String>

  9. #9
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Points : 110
    Points
    110
    Par défaut
    Nan, marche toujours po Laisse tomber, je vais mettre des supress warning!

  10. #10
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Citation Envoyé par arasium
    Nan, marche toujours po Laisse tomber, je vais mettre des supress warning!
    C'est quand même bizarre...

  11. #11
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Points : 110
    Points
    110
    Par défaut
    Oui mais je pense qu'il faut que je mette quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    load(class extends Vector<T> v)

Discussions similaires

  1. Sécurité des puce NFC type "café"
    Par skeud dans le forum Sécurité
    Réponses: 5
    Dernier message: 17/04/2019, 01h37
  2. Réponses: 1
    Dernier message: 18/10/2013, 15h37
  3. Recherche système de type certificat de sécurité
    Par blubsy dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 05/04/2011, 10h16
  4. Réponses: 0
    Dernier message: 13/02/2011, 12h35

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