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 :

modification de Integer


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut modification de Integer
    Bonjour,
    dans une appli, j'utilise des Integers pour représenter les Id d'Objets, jusque-là, rien de bien méchant.

    Cependant, le fait que la classe Integer soit 'final' me pose quelques soucis.
    En effet, pour des raisons pratiques, j'aimerais que le toString() d'un Integer de valeur -1 me renvoie un text précis(du genre "non initialisé").

    Ma première idée a été de faire une classe qui étendait Integer et de simplement surchager la méthode toString(), je n'ai pas réussi, le final semble rendre cela impossible (ou alors je m'y suis mal pris...).

    J'ai essayé de ruser en créant un Integer de valeur -1 static à mon appli où je surchageait la méthode dès la création de l'objet, mais faut croire que c'était pas si malin que ça...

    Avez-vous une idée de comment je peux m'y prendre?
    Je préférerais éviter de créer cette classe à la main, ça ne prendrait certes pas longtemps, mais après, je devrais remplacer tous les Integer de mon appli par le nom de la nouvelle classe, je préfère autant éviter...

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 77
    Par défaut
    Tu peux faire le contrôle et le retoure à l'extérieur de la classe Integer. Tu peux aussi l'étendre et faire une méthode spécifique pour faire le contrôle et le retour que tu souhaites. ce sont des suggestions...

  3. #3
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Comme te le suggere bidi, créer un wrapper autour de la classe Integer .

    Par contre documentes bien! pour que ce soit clair pour ceux qui viendront apres toi.

    Je pense, aussi, que c'est la seule solution...

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Tiens c'est marrant, mais je me suis fait une ptite classe "MutableInteger" y'a pas si longtemps...

    La voilà si ça vous intéresse-même si je sais que c'est simple comme bonjour à faire soi-même
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    /**
     * Classe encapsulant un entier pouvant changer de valeur.
     *
     * @author Piller Sébastien
     * @version 18.04.2006
     */
    public final class MutableInteger extends Number implements Comparable {
      private static final long serialVersionUID = 170098595651999351L;
     
      /**
       * Valeur sous forme d'entier.
       */
      private int value = 0;
     
      /**
       * Créé une nouvelle instance.
       */
      public MutableInteger() {
        this(0);
      }
     
      /**
       * Créé une nouvelle instance.
       *
       * @param value Valeur initiale.
       */
      public MutableInteger(int value) {
        super();
        this.value = value;
      }
     
      public void setValue(int value) {
        this.value = value;
      }
     
      public int compareTo(Object obj) {
        if (this == obj) {
          return 0;
        }
     
        if (!(obj instanceof Number)) {
          return 1;
        }
     
        return Integer.valueOf(value)
                      .compareTo(Integer.valueOf(((Number) obj).intValue()));
      }
     
      @Override
      public double doubleValue() {
        return value;
      }
     
      @Override
      public boolean equals(Object obj) {
        if (this == obj) {
          return true;
        }
     
        if (!(obj instanceof Number)) {
          return false;
        }
     
        return value == ((Number) obj).intValue();
      }
     
      @Override
      public float floatValue() {
        return value;
      }
     
      @Override
      public int intValue() {
        return value;
      }
     
      @Override
      public long longValue() {
        return value;
      }
     
      @Override
      public String toString() {
        return String.valueOf(value);
      }
    }

  5. #5
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Citation Envoyé par Pill_S
    Tiens c'est marrant, mais je me suis fait une ptite classe "MutableInteger" y'a pas si longtemps...

    ......
    Hello,

    Juste une petite question concernant l'implémentation de ta classe MutableInteger pour comprendre ta démarche.


    Pourquoi tu utilises un type int pour garder la valeur numérique et pas un integer? Y a t il une raison fondamentale?

    Personnellement j'aurais utilisé un Integer à la place du int.Est ce une erreur de ma part?

    Merci d'avance,

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par fabszn
    Personnellement j'aurais utilisé un Integer à la place du int.Est ce une erreur de ma part?
    Non, ce serait tout à fait correct... Je n'ai pas de "bonne" raison d'utiliser un int plutôt qu'un Integer...

    Disons que puisqu'un int ne peut pas être null, je m'évite les NullPointerException...

  7. #7
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut
    Tu ne pourras pas étendre une classe final, ça c'est une certitude...
    Ce que tu peux faire c'est définir toi même une classe Integer (qui peux même déléguer à la véritable classe Integer) dans ton applic et remplacer les imports... c'est le seul moyen que je vois en tt cas...

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

Discussions similaires

  1. [VB6] modification de menu
    Par rikko23 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/11/2002, 21h30
  2. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  3. comment integer une animation swf dans une page
    Par naili dans le forum Intégration
    Réponses: 7
    Dernier message: 18/09/2002, 18h54
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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