2010-09-20 11 views
7

Si tengo una interfaz con algunos métodos. A veces necesito crear una nueva implementación de la interfaz que envuelve otra instancia de la interfaz y delega la mayoría de los métodos a la instancia envuelta. Luego cambiaría un par de implementaciones, tal vez no las delegue.¿IntelliJ IDEA tiene un generador de códigos Create Wrapper?

Un ejemplo clásico serían los métodos Collections.unmodifiableXXX() en el JDK que bloquean el acceso a los métodos de modificación.

¿IntelliJ tiene algún tipo de asistencia de código que genere una implementación de delegado de la interfaz y luego puedo modificar solo un par de métodos?

Respuesta

13

Puede hacerlo en dos etapas. Primero implemente la interfaz y luego introduzca la delegación

+5

Thanks. Para que quede claro, los pasos son ... 1) Implementar la interfaz. 2) Agregue la variable de miembro de destino que se delega. 3) Use Code | Delegate y primero seleccione el objetivo de la variable miembro y luego todos los métodos que desee delegar. –

11

Code|Delegate Methods

+0

Esto es útil para delegar basado en un miembro de campo en lugar de una clase base –

+0

También se puede acceder a esta refactorización desde el menú Alt + Enter. –

+0

@Jonathan Neufeld cuando sobrescribe los métodos, la llamada a la implementación de la clase base se inserta de manera predeterminada. –