• [^] # Re: Innocente question

    Posté par . En réponse à la dépêche Java Security. Évalué à 1.

    Mais justement, la façon dont c'est implémenté est relativement logique : les méthodes concernant les chaînes de caractères sont dans String et celles qui concernent les entiers sont dans Integer.

    Je m'explique : si tu as un objet de type Integer et que tu veux sa représentation sous forme de chaîne, tu peux utiliser la méthode Integer.toString() (méthode d'instance). Il est normal que cette méthode soit dans Integer parce qu'elle s'applique sur un Integer, et de plus, qui mieux que celui qui implémente la classe Integer sait comment représenter un entier sous forme de chaîne.

    En revanche, si tu as un entier (type de base int, pas un objet) et que tu veux le transformer en chaîne, tu peux utiliser String.valueOf(int i) (méthode de classe) pour toute transformation basique. int étant un type de base, il s'agit d'une règle de "bonne conduite" que d'accepter les types de base comme initialisation d'un objet. Par contre, la méthode Integer.toString(int i[, int radix]) (méthode de classe) est plus adaptée pour cette tâche parce la manipulation met en oeuvre des entiers, pas des chaînes (la chaîne est simplement le résultat).

    De la même manière, dans l'autre sens, on passera de String vers Integer avec Integer.valueOf(String s[, int radix]) et de String vers int avec Integer.parseInt(String s[, int radix]) (deux méthodes de classe).


    Sinon, en ce qui concerne la portabilité, la différence de Java par rapport à la plupart des autres langages, c'est qu'il a été pensé dès le départ comme un langage pouvant s'exécuter partout. C'est pour cela que beaucoup trouvent que le langage est plus limité que d'autres, simplement du fait du problème de dénominateur commun entre toutes les platteformes pouvant "exécuter" du Java.