2011-04-05 22 views
21

Me preguntaba si había alguna funcionalidad para generar los esqueletos de un decorador desde una interfaz similar a Generate Setters and Getters. Me gustaría crear una clase desde una interfaz que tomara una instancia de esa interfaz e implementara todos los métodos como llamar a ese mismo método con esos mismos parámetros en la instancia. Tengo una clase fea de una biblioteca que me gustaría decorar, pero tiene ~ 50 métodos y solo quiero cambiar la funcionalidad de uno de ellos y me gustaría guardar algo de mecanografía. ¿Hay algo como esto?¿Hay un atajo en Eclipse para generar código para decoradores?

ejemplo, dada la interfaz:

interface FooBar{ 
     void foo(Object o); 
     Object bar(); 
} 

producir algo como la clase:

class FooBarDecorator implements FooBar{ 
     private final FooBar fubee; 

     FooBarDecorator(final FooBar fb){ 
      this.fubee = fb; 
     } 

     public void foo(Object o){ 
      this.fubee.foo(o); 
     } 

     public Object bar(){ 
      return this.fubee.bar(); 
     } 
} 

Respuesta

31

Sí !! Haga clic derecho en su miembro fubee, seleccione Source ->Generate Delegate Methods -> hecho! Aunque, creo que para que esto funcione, usted tendrá que escribir

class FooBarDecorator implements FooBar { 
// [...] 

Dejar que el decorador implementa la interfaz

+0

tomó más tiempo para escribir que para usted para responder. "Delegate Methods" no saltó a mí como si fuera eso hasta que lo mencionó, pero ahora que lo mencionó "duh!". Gracias. – ArtB

Cuestiones relacionadas