2012-09-06 27 views
17

me gustaría tener mis organismos para que yo les puedo cadena como:Generar emisores que devuelven uno mismo en Eclipse

myPojo.setX(x).setY(y); 

Por lo general generan los emisores con Eclipse, pero por desgracia para los emisores de code template me permite cambiar sólo el cuerpo del colocador, no la firma.

¿Cuál sería la forma más fácil de completar lo anterior? Además de buscar y reemplazar + edición manual? :)

+0

Creo que lo mejor que puede hacer es cambiar la plantilla del cuerpo del método a '$ {field} = $ {param}; devuelve esto; 'y luego corrige automáticamente el error del compilador resultante. – mercutio

+1

Su eclipse difícil de creer todavía no tiene esto como una casilla de verificación en generadores de ajustes ... – mtyson

Respuesta

5

Es posible que pueda utilizar el fluent-builders-generator plugin para generar setters en la forma que desee.

+0

Veo más patrones relacionados con las interfaces fluidas que con lo que OP pregunta. ¿Hay alguna manera de simplemente establecer la plantilla deseada? –

+0

Creo que este proyecto está muerto – lrkwz

6

Puede usar el Editor/Plantillas para este propósito. Para definir una nueva Plantilla, abra la Ventana de Preferencias, luego Java-> Editor-> Plantillas. En esta ventana puede definir una nueva plantilla y darle un nombre. Por ejemplo:

public ${enclosing_type} setName(${argType} name) { 
    this.name = name; 
    return this; 
} 

Ponle un nombre, p. settr. A continuación, puede utilizar esta plantilla en su código java escribiendo 'settr' y luego Ctrl-Space.

+1

¿Pero puede hacer que se comporte como un setter, de modo que 'name' será el nombre de cualquier variable de clase? – mercutio

+6

+1 pero, por desgracia, esto no afecta a la "Fuente/Generar getters y setters" – AlexR

+0

Es una pena que no pueda combinar esto con Generate setters .. – vertti

7

Puedo ofrecer un tipo de parche que, sin embargo, no requiera ninguna instalación adicional.

Ir a la ventana/preferencias/Java/Estilo de código/Plantillas de código. Editar "colocador cuerpo" plantilla de la siguiente manera:

${field} = ${param}; 
return this; 

Ahora cuando se ejecuta "generar captadores y definidores" se creará colocador como:

public void setMyField(String myField) { 
    this.myField = myField; 
    return this; 
} 

Obviamente, esto provoca error de compilación porque el tipo de método es void . Pero puede marcar Ctrl-F y reemplazar todo 'conjunto vacío público' por public YourClassName set.

Es un parche, pero funciona ...

+4

No resuelve el problema real. De la misma manera, podría tener respuesta para usar Emacs en lugar de Eclipse, pero tampoco habría resuelto la pregunta. –

+1

Responde la pregunta tal como fue escrita originalmente. La pregunta ha sido alterada desde entonces. –

0

Notepad ++ solución:

datos:

JavaType variableName; 

búsqueda de expresiones regulares:

(.*) (.*); 

Reemplazar expresiones regulares

public JavaType with\2\(\1 p\2\) { this.\2 = p\2; return this; } 

Tiene que corregir manualmente el nombre del método, ya que no mayúscula la primera letra del nombre de la variable.

Cuestiones relacionadas