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 :

conversion entier java


Sujet :

Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 12
    Points : 11
    Points
    11
    Par défaut conversion entier java
    Bonjour,

    On me demande quel est le problème sur cette classe et je n'arrive pas à trouver les problèmes qu'on peut rencontrer.
    Quelqu'un pour m'aider? Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static Integer convertToInteger(Object unObjet) {
    if (unObjet instanceof Integer) {
    return (Integer)unObjet ;
    }
    if (unObjet instanceof String) {
    try {
    Integer i = Integer.parseInt((String)unObjet);
    return i ;
    } catch(NumberFormatException e) {
    return 0 ;
    }
    }
    return 0 ;
    }

  2. #2
    Membre habitué Avatar de Badshade23
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2014
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2014
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Salut,
    Pour moi ta méthode fonctionne ....
    As-tu un énoncé ou autre ? Une description du rôle ou du fonctionnement de ta méthode ?
    Le fonctionnement attendu etc...

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Badshade23 Voir le message
    Salut,
    Pour moi ta méthode fonctionne ....
    As-tu un énoncé ou autre ? Une description du rôle ou du fonctionnement de ta méthode ?
    Le fonctionnement attendu etc...
    Salut voici l'énoncé :
    Vous avez à votre disposition la classe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    classe Assert
    public à portée de classe :
    // affiche le message d’erreur si la proposition est fausse
    // ou rien si la proposition est vraie estVrai
    (proposition : booléen, messageErreur : chaîne)
    Vous avez écrit en Java la fonction suivante qui doit permettre de convertir un objet en Integer. Le but est de
    retourner 0 si l’objet est null quel que soit son type, ou s’il n’est pas de type Integer ou String. Dans le cas
    d’un objet de type Integer, il est retourné sans changement. Dans le cas d’un objet de type String, une tentative
    de conversion en Integer est faite (avec Integer.parseInt qui tente cette conversion). Si la conversion de
    String en Integer n’est pas possible, il faut retourner 0 (le catch s’exécute si la conversion n’est pas possible).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static Integer convertToInteger(Object unObjet) {
    if (unObjet instanceof Integer) {
    return (Integer)unObjet ;
    }
    if (unObjet instanceof String) {
    try {
    Integer i = Integer.parseInt((String)unObjet);
    return i ;
    } catch(NumberFormatException e) {
    return 0 ;
    }
    }
    return 0 ;
    }
    Questions :
    1. Écrire toutes les lignes de tests nécessaires pour assurer la couverture de code, en utilisant la classe Assert.
    2. Préciser les éventuels messages obtenus lors des tests précédents, identifier les problèmes et donner une nouvelle version de la fonction.

  4. #4
    Membre habitué Avatar de Badshade23
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2014
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2014
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Ok, tu as déjà écrit tes différents tests grâce à assert ? Et tu as renseigné les messages obtenue avec ces tests ?

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Badshade23 Voir le message
    Ok, tu as déjà écrit tes différents tests grâce à assert ? Et tu as renseigné les messages obtenue avec ces tests ?
    Oui ! Les voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Assert.estVrai(convertToInteger("3") = 3, "erreur pour 3")
    Assert.estVrai(convertToInteger("0") = 0, "erreur pour 0")
    Assert.estVrai(convertToInteger("toto") = 0, "erreur pour toto")
    Assert.estVrai(convertToInteger(NULL) = 0, "erreur pour NULL")
    Assert.estVrai(convertToInteger() = 0, "erreur pour aucun paramètre")
    Assert.estVrai(convertToInteger(5) = 5, "erreur pour 5  " )
    Assert.estVrai(convertToInteger(5.25) = 0, "erreur pour 5.25  " )
    Assert.estVrai(convertToInteger(0) = 0, "erreur pour 0" )

  6. #6
    Membre habitué Avatar de Badshade23
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2014
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2014
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Tes tests fonctionnent ?
    La méthode "estVrai" écrit ainsi n'existe pas pour la class Assert.
    Je verrais ça ainsi :

    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
     
    import static org.junit.Assert.assertTrue;
     
    import org.junit.jupiter.api.Test;
     
    class UnitTest {
     
    	@Test
    	void test() {
    		assertTrue("erreur pour le String 3", 3 == TestConvertInt.convertToInteger("3"));
    		assertTrue("erreur pour le String 0", 0 == TestConvertInt.convertToInteger("0"));
    		assertTrue("erreur pour le String toto", 0 == TestConvertInt.convertToInteger("toto"));
    		assertTrue("erreur pour Null", 0 == TestConvertInt.convertToInteger(null));
    		assertTrue("erreur pour l'int 5", 5 == TestConvertInt.convertToInteger(5));
    		assertTrue("erreur pour le float 5.25", 0 == TestConvertInt.convertToInteger(5.25));
    		assertTrue("erreur pour l'int 0", 0 == TestConvertInt.convertToInteger(0));
    	}
    }
    Et l’exécution de ce code ne retourne aucune erreurs.

    Par contre le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Assert.estVrai(convertToInteger() = 0, "erreur pour aucun paramètre")
    Il n'est pas bon. Si tu regardes la signature de ta méthode convertToInteger, tu es obligé de passer un paramètre à moins de changer celle-ci.

    Suite aux tests effectués, je ne vois pas d’erreurs pour ta méthode "convertToInteger" à moins que le test précédent doit fonctionner ... Tu as des tests obligatoires ?
    Peut-être que quelqu'un d'autre saura mieux t'éclairer sur le sujet.

  7. #7
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    "Si la conversion de
    String en Integer n’est pas possible, il faut retourner 0 (le catch s’exécute si la conversion n’est pas possible)
    ."
    voilà une spec très discutable: si on a quelque chose qui représente "0" on ne fait pas la différence avec une erreur... bizarre...bizarre
    (bon d'acc... c'est un exercice mais pourquoi donner de mauvaises habitudes qui s'incrusteront dans la vie réelle?)
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

Discussions similaires

  1. Conversion entier en chaine
    Par clairette dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/05/2006, 17h33
  2. [SQL2005] Conversion entier en ntext
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/01/2006, 07h58
  3. [Conversion]Applet Java Vers Java Web Start
    Par robin206 dans le forum JWS
    Réponses: 2
    Dernier message: 20/04/2005, 09h28
  4. [Conversion] conversion C++ ---> Java
    Par marc26 dans le forum Général Java
    Réponses: 16
    Dernier message: 30/03/2005, 19h41
  5. [debutant][hexadecimal]Conversion entier hexadecimal
    Par Mobaladje dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 14/05/2004, 07h50

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