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

Java Discussion :

ajouter toString() a ma classe


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 854
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 854
    Par défaut ajouter toString() a ma classe
    Bonjour,

    J'ai créé ma classe avec les methode suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public long titi(){}
    public long tutu(){}
    public long toto(){}
    => donc pour appeler ma methode je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    long a = monObjet.titi();
    Est-il possible d'ajouter une methode toString() (qui affiche la valeur retournée en string avec une forme particulière) à toutes mes methodes de façon a pouvoir l'appeler comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String str = monObjet.titi().toString();
    si oui, comment ?

    merci d'avance,

  2. #2
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    tu mets juste dans ta classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String toString{
      //ton code
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    Salut,

    Je pense que ton soucis ne viens pas du toString mais du fait que tu utilise des primitives :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	public long long1;
     
    	public Long long2;
     
    	private void toStr() {
     
    		long1.toString(); // KO
    		long2.toString(); //OK
    	}

    Dans le code ci-dessus seule la deuxième ligne compile
    Il faut bien distinguer long de Long ( l!=L )

    Je ne crois pas qu'il soit possible (ni utile ?) d'ajouter toString sur des primitives

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 854
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 854
    Par défaut
    Citation Envoyé par michel.di Voir le message
    tu mets juste dans ta classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String toString{
      //ton code
    }
    oui mais comment je fais pour savoir quelle est la methode qui appele toString() (vu que je veux un traitement différent en fonction de la methode appelante) ?

    Et si par exemple, je ne veux pas que toto() puisse avoir cette methode, je fais comment ?

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Est-il possible d'ajouter une methode toString() (qui affiche la valeur retournée en string avec une forme particulière) à toutes mes methodes de façon a pouvoir l'appeler comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String str = monObjet.titi().toString();
    Non et c'est inutile : Java a déjà plein de manière de convertir un long en String, par concaténation, par Long.toString(long), et par d'autres méthodes utilitaires.

    Au pire, renvoie un Long au lieu d'un long, et toString() fonctionnera directement tel que.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 854
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 854
    Par défaut
    je ne veux pas faire une simple conversion, je veux afficher mon nombre sous un certain format => donc c'est quand plus mieux de l'implémenter dans ma classe...

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Tu n'as qu'à faire une méthode titiStr() qui retourne directement une String (appel de titi() puis conversion).

    D'après ce que je comprend tu veux pouvoir avoir un résultat de toString() différent en fonction de l'appel à titi() ou toto()?

    a+

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    je ne veux pas faire une simple conversion, je veux afficher mon nombre sous un certain format => donc c'est quand plus mieux de l'implémenter dans ma classe...
    à moins de changer l'api de base tu ne va pas pouvoir ajouter de méthode dans long ou Long (sauf en reflexif ...)

    tu veux faire un truc comme ça ?

    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
    public class Afficheur {
     
     
    	public static void main(String[] args) {
    		Afficheur aff = new Afficheur(0,5);
    		System.out.println(affiche(aff.long1));
    		System.out.println(affiche(aff.long2));
    	}
     
    		public Afficheur(long long1,long long2) {
    			// TODO Auto-generated constructor stub
    			this.long1 = long1;
    			this.long2 = long2;
    		}
     
    	public long long1;
     
    	public long long2;
     
    	private static String affiche(long monLong) {
    		// TODO Auto-generated method stub
    			if ( monLong == 0){
    			return "pas de data";	
    			} else{
    				return " on a "+monLong+" data";
    			}
    	}
    }
    Le résultat est
    pas de data
    on a 5 data
    est ce que tu as un exemple de ce que tu veux faire (le code dans ton premier post ne compile pas) ?

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 854
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 854
    Par défaut
    oui c'est bien un truc du genre que je veux faire

    ex :
    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
    public class Afficheur {
     
    	private long long1;
    	private long long2;
     
    	public Afficheur(long long1,long long2) {
    		// TODO Auto-generated constructor stub
    		long1 = long1;
    		long2 = long2;
    	}
     
    	public long getVal() {
               return  long1 + long2;
    	}
     
            // comment faire ????
    	public String getVal().toString(){
                 long b = this.getVal();
     
                  if(this.getVal() > 1000){
                      return "b > 1000 => " + String.toString(b);
                  } else {
                      return "erreur => " + String.toString(b);
                  }
            }
    }
    pour utiliser ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Afficheur a = new Afficheur();
    String myStr = a.getVal().toString();

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

Discussions similaires

  1. Ajouter des méthodes, des classes
    Par Toba63 dans le forum iReport
    Réponses: 3
    Dernier message: 20/08/2008, 10h29
  2. comment ajouter des méthodes à une classe lors Runtime?
    Par revever dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/03/2008, 13h53
  3. Ajouter un répertoire de classes
    Par Mike Reason dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 29/06/2007, 11h31
  4. [DOM] Ajouter un event à une class
    Par Nulenprogra dans le forum Général JavaScript
    Réponses: 23
    Dernier message: 30/04/2007, 11h19
  5. Réponses: 10
    Dernier message: 20/09/2006, 17h04

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