2012-02-17 14 views
5

Estoy haciendo una refactorización en el código traducido de otros idiomas a Java y quiero hacerlo automáticamente. Mi problema es que tengo muchos métodos que no son privados, pero que se llaman en la misma clase en la que están declarados y quiero que sean privados. Tengo muchas clases y supongo que si hay algo que pueda ayudarme a hacerlo de forma semiautomática, me gustaría saberlo.Cambiar automáticamente de público a privado (Java)

¿Sabes si puedo buscar estos métodos para que sean privados rápidamente? Estoy usando Eclipse.

+4

Si la mayor parte de los mensajes deben ser privados, puede configurar todos los públicos para que sean privados mediante buscar/reemplazar y luego corregir los que se vuelven rojos porque deben ser públicos. – Gray

+1

¿Por qué harías esto? Si este es un entorno de producción, no lo haga. –

Respuesta

8

Reemplazar todo es una opción.

Pero Le sugiero que no lo haga. private y public están ahí para el programador. Si solo llama a un método de la propia clase, no significa automáticamente que tiene como private. Lo mejor que puede hacer es revisarlos de uno en uno y pregúntese "si este método forma parte de la interfaz pública o no?".

Personalmente, cada vez que encuentro un método private en una clase que necesito usar, el 99% del tiempo lo dejo private y busco una solución alternativa. Eso es porque supongo que el autor original del código sabía lo que estaba haciendo. Por supuesto, esto no siempre se aplica.

private es una declaración de intenciones. Es como decir - si necesita usar esto fuera de la clase, está haciendo algo mal. No deberías necesitar esto.

1

Tal vez una forma sería reemplazar las palabras "públicas" con palabras "privadas" en los documentos seleccionados y con la función "Reemplazar todo". Pero tiene efectos secundarios si tiene "público" en el contenido de algún código que no sea la firma del método, p. dentro de una cadena tal vez.

Después de reemplazar todas las firmas de métodos que seleccione, verifique una vez más para asegurarse de que estén en la forma que deseaba.

2

Una cosa a tener en cuenta es que, dado que se asume el alcance público, puede tener clases fuera de su clase llamando al método. Si puede garantizarse que tiene todo el código posible llamando a esto. También puede verificar si el método se está usando en eclipse haciendo clic con el botón derecho del mouse sobre el método y usar la referencia o (ctrl + shift + G) para asegurarse de que no hay ningún lugar que llame a este método.

Para realmente hacer el cambio de público a privado, una búsqueda y reemplazo es probablemente la mejor opción.

Cuestiones relacionadas