El foo método (T []) en el tipo de clase no es aplicable para los argumentos (Vector <Integer>)

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 Ts. Al igual que cómo un String[]es un conjunto de Strings.

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 inten el estándar Comparablede formato.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=316628&siteId=1
Recomendado
Clasificación