Java Language Bâtis de coulée


Exemple

Les tableaux sont des objets, mais leur type est défini par le type des objets contenus. Par conséquent, on ne peut pas simplement convertir A[] en T[] , mais chaque membre du A[] spécifique doit être converti en un objet T Exemple générique:

public static <T, A> T[] castArray(T[] target, A[] array) {
    for (int i = 0; i < array.length; i++) {
        target[i] = (T) array[i];
    }
    return target;
}

Ainsi, étant donné un tableau A[] :

T[] target = new T[array.Length];
target = castArray(target, array);

Java SE fournit la méthode Arrays.copyOf(original, newLength, newType) à cet effet:

Double[] doubles = { 1.0, 2.0, 3.0 };
Number[] numbers = Arrays.copyOf(doubles, doubles.length, Number[].class);