2012-07-09 27 views
18

Intento evitar tener variables no finales cuando sea posible, y ahorraría algo de tipeo si Eclipse me automatizara esto (también para que no me olvide de hacerlo). Lo que me gustaría es que detecte cuando agregue una nueva instrucción de asignación/declaración variable, y tan pronto como la termine, inserte el modificador final.¿Hay alguna manera de hacer que Eclipse haga automáticamente todas mis variables definitivas?

¿Hay alguna opción de configuración o complemento liviano que logre esto?

Respuesta

37

Puede agregarlo como 'Acción de guardado' para que cada vez que guarde un archivo, Eclipse agregue final a sus variables. Esta es la forma:

  • Ir a Ventana> Preferencias> Java> Editor> Save acciones
  • Tick acciones adicionales y pulse Configurar
  • En el pestaña estilo de código hay una sección en Declaraciones de variable y puede marcar Use el modificador 'final' donde sea posible. Puede elegir entre campos privados, parámetros y variables locales.

O bien, puede hacer lo mismo de forma manual (de vez en cuando o para la base de código existente) a través de Limpiar

+0

El día en que se den cuenta de que catch-declarations y for-vars ** no ** son las mismas que las declaraciones de var locales, habilitaré esta opción por mí mismo :) Por ahora, todavía tengo que hacerlo a mano. –

+0

@MarkoTopolnik Para los vars foreach (p. Ej., 'For (Objeto final x: ...) {...}') no hay mucho problema, pero las variables de iteración 'for (int i = 0; ...; i ++) {...}', there ' d ser un problema ¿A menudo tienes la oportunidad de asignar a las declaraciones de capturas? No veo mucho problema con 'try {} catch (excepción final e) {...}' ... –

+4

@JoshuaTaylor Parece que te estás perdiendo de mi punto ... el problema es tener todas esas palabras clave 'finales' agregando ruido a tu codigo. Lo que preferiría es que el último sea el * default * y una palabra clave especial que deba aplicarse para obtener una variable mutable. –

4

Puede hacer clic con el botón derecho -> fuente -> limpieza. Primero debe definir en la parte del Formateador de Código de la preferencia lo que realmente desea que se limpie.

+0

No lo agrega "tan pronto como lo termine", pero simplemente no puede importarle los modificadores finales mientras los escribe y los agrega al final con la limpieza. – YMomb

1

esto puede no ser la solución más robusta pero para primitivas y/o tipos que utiliza una gran cantidad se podría definir macros

int --> final int 
byte[] --> final byte[] 
List --> final List 

me gusta mucho la idea formateador también, pero entonces usted tiene que aceptar todos los demás pieza de formato que tiene, que puede ser engorroso.

2

Checkstyle plugin puede hacer esto para usted. Primero debe configurar la configuración del estilo de cheque, luego habilitar el estilo de control en su proyecto y dejar que cambie su código al guardar un archivo java.

Cuestiones relacionadas