Extensión dinámica en Java
- El concepto
- Uso de clases, en tiempo de ejecución, desconocidas en tiempo de compilación.
- ¿Como cargarlas? (2 formas)
- Class.forName( nombre completo de clase)
- Uso fácil y cómodo
- Usa el ClassLoader que corresponda según la regla de carga
- CargadorDeClase.loadClass(nombre completo de clase)
- Un cargador de clase se construye:
- Heredando de ClassLoader
- Redefiniendo métodos ( loadClass(…) entre otros )
- Cada cargador tiene un espacio de nombres propio
- Distintos espacios de nombres permiten clases distintas con igual nombre
- El proceso de carga se puede hacer a medida
- Se ignora la regla de carga
- A través de red, con .class encriptados…
- ¿Como usarlas? (2 formas)
- Invocando métodos de una superclase/interfaz de la clase cargada
- Ej.: Los navegadores ejecutan así los Applets
- Explorando los métodos de la clase con reflexión
- Ej.: Un uso muy común al trabajar con Beans
- Regla de carga
- Para cargar una clase, se usa el cargador de clase que se ha usado para cargar la clase que la referencia.