Pourquoi utiliser printf(“%s”) pour les arguments passés à des méthodes génériques?

package genericMethods;

public class OverloadedMethods {

    /**
     * @param args
     */
    public static void main(String[] args) {
        //TODO Auto-generated method stub

        Integer[] integerArray = {1, 2, 3, 4, 5};
        Double[] doubleArray = {1.0, 2.0, 3.0, 4.0, 5.0};
        Character[] charArray = {'a', 'b', 'c', 'd'};

        System.out.println("A has: ");
        printArray(integerArray);
        System.out.println("B has: ");
        printArray(doubleArray);
        System.out.println("C has: ");
        printArray(charArray);
    }

    public static <T> void printArray(T[] array)
    {
        for(T element : array)
            System.out.printf("%s ", element);//why use %s instead of others? 

        System.out.println();
    }

}

Ma question est la méthode printArray() ne sait pas de quel type de données à imprimer, et il semble qu' %d va se produire d'erreur au moment de l'exécution - mais n'est-ce pas %s pour une Chaîne uniquement ?

  • Veuillez consulter la docs.oracle.com/javase/6/docs/api/java/util/Formatter.html. Par ailleurs, vous êtes l'impression de la element comme String.
  • Parce que vous avez une Chaîne de représenter quoi que ce soit, d'un flotteur, un entier, un octet, un personnage, tandis que les autres types ne peuvent se représenter eux-mêmes.
InformationsquelleAutor Venzentx | 2013-03-02