andreauttini:
Alguien me puede explicar lo que T[]
significa? lo que puede ser aceptado y por qué?
public class Class {
public static <T extends Comparable<T>> int[] foo(T[] s) {
// ...
}
public static void main(String[] args) {
int[] intArray1 = new int[10];
int[] ris = foo(intArray1); // nope
Vector<Integer> intArray2 = new Vector<Integer>(10);
int[] ris = foo(intArray2); // nope
Integer[] intArray3 = new Integer[10];
int[] ris = foo(intArray3); // ok
}
}
cameron1024:
T[]
es una matriz de T
s. Al igual que cómo un String[]
es un conjunto de String
s.
La firma del método: public static <T extends Comparable<T>> int[] foo(T[] s)
significa que:
- El método toma una matriz de
T
- T se extiende Comparable
- el método devuelve una
int[]
En pocas palabras, esto significa que: al conseguir los objetos de su módulo, usted sabe que puede llamar .compare()
en ellos, y que le proporcione una int
en el estándar Comparable
de formato.