genérico
Es un mecanismo de detección de seguridad de tipos en tiempo de compilación que permite detectar tipos ilegales en tiempo de compilación, es
esencialmente un tipo parametrizado, es decir, el tipo de datos a manipular se especifica como un parámetro;
Formato de definición de clase genérica
Modificador de clase class name <type>{ }
public class Generic{ }
T, E, K, V y otros tipos de parámetros se utilizan a menudo para representar genéricos;
Ejemplo de código:
definir un genérico:
public class shili<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
Aplicado a una clase:
public class fanxin {
public static void main(String[] args) {
shili<String> s1 = new shili<String>();
s1.setT("hahaa");
System.out.println(s1.getT());
shili<Integer> s2 =new shili<Integer>();
s2.setT(22);
System.out.println(s2.getT());
}
}
método genérico
Los métodos genéricos se pueden usar para definir la situación en la que el mismo método requiere varios tipos de contenido de entrada de una manera más conveniente al llamar a métodos;
un método se puede usar para implementar métodos de múltiples tipos de datos
Código de ejemplo de método genérico:
public class Gen<T> {
public void show(T t){
System.out.println(t);
}
}
Código de clase de implementación:
Gen<String> g1 = new Gen<String>();
g1.show("hhh");
Gen<Integer> g2 = new Gen<Integer>();
g2.show(39);
Gen<Boolean> g3 = new Gen<Boolean>();
g3.show(true);
interfaz genérica
El uso de la interfaz genérica puede definir la situación en la que la misma interfaz requiere varios tipos de contenido de entrada de una manera más conveniente al llamar a la interfaz;
1. Defina el modificador de interfaz interface interface name <tipo>, ejemplo: public interface Generic{}
2. Defina la clase de implementación de la interfaz, agregue Impl después del nombre de la interfaz para el nombre de la clase de implementación y reescriba el método
public class GenericImpl implementa Generic {}
3. Llámalo de forma polimórfica en la aplicación
Generic<String> s = new GenericImpl<String>();
s.show("haha");
Generic<Integer> s1 = new GenericImpl<Integer>();
s1.show(22);
Escriba comodín <?>
<?> escriba comodínSus elementos pueden coincidir con cualquier tipo,
solo significa que es la clase principal de varios tipos genéricos y no se le pueden agregar elementos;
<?extiende el tipo> límite superior del tipo comodín, el límite superior es este tipo <?supertipo> límite inferior del tipo comodín, el límite inferior es este tipo
Lista<?> lista1 = new ArrayList();
parámetro variable
Un método puede realizar la suma de varios
formatos de datos: modificador valor devuelto tipo nombre del método (tipo de datos... nombre de la variable)
public static int sum(int... a){
int sum = 0;
for(int I : a){
sum +=i;
}
return sum;
}
Nota: La variable aquí es en realidad una matriz.
Si hay varios parámetros en una variable, incluidos los parámetros variables, los parámetros variables deben colocarse al final
En los métodos estáticos de List, Set y Arrays que usan parámetros variables, la colección devuelta no se puede agregar ni eliminar, es decir, la longitud de la colección no se puede cambiar;