"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo combinar restricciones de clase e interfaz utilizando genéricos de Java?

¿Cómo puedo combinar restricciones de clase e interfaz utilizando genéricos de Java?

Publicado el 2024-12-22
Navegar:808

How Can I Combine Class and Interface Constraints Using Java Generics?

Généricos de Java con compatibilidad de clases e interfaces

En Java, crear un objeto de clase con restricciones específicas puede ser un desafío. Un escenario común es definir un objeto de clase que extiende una clase particular mientras implementa simultáneamente una interfaz específica. Sin embargo, lograr ambas restricciones simultáneamente usando genéricos ha sido un punto común de discordia.

Intentos de forzar a una clase a extender ClassA e implementar la interfaz InterfaceB usando la sintaxis:

Class extends ClassA>

o

Class extends InterfaceB>

solo satisfará un requisito y no podrá combinar ambos.

Solución

Afortunadamente, los genéricos de Java permiten múltiples interfaces o clases plus interfaces. Para lograr esto, modifique la declaración comodín de la siguiente manera:

Como se ilustra en el Tutorial genérico de Sun, agregando & InterfaceName para cada interfaz adicional requerida, un Se puede lograr una combinación arbitrariamente compleja. Por ejemplo, la declaración JavaDoc de Collections#max demuestra esta complejidad:

public static > T max(Collection extends T> coll)

Preservar la compatibilidad binaria requiere estas declaraciones intrincadas.

Implementación con restricciones de clase e interfaz

Para implementar la restricción deseada en una declaración de variable, coloque un límite genérico en una clase:

class classB { }
interface interfaceC { }

public class MyClass {
    Class variable;
}

Conclusión

Los genéricos de Java proporcionan formas flexibles de crear combinaciones restringidas de clases e interfaces. Al comprender la sintaxis y las limitaciones, los desarrolladores pueden aprovechar este poder para imponer requisitos específicos en su código.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3