Definición de clase genérica de aprendizaje JAVA, método genérico, interfaz genérica, comodín de tipo, parámetro variable

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ín

Sus 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;

Supongo que te gusta

Origin blog.csdn.net/weixin_52723971/article/details/110748624
Recomendado
Clasificación