Uso excesivo de la palabra clave "this" en Java [duplicado]

12
    

Esta pregunta ya tiene una respuesta aquí:

    

La palabra clave this se usa principalmente en tres situaciones.

El primero y el más común es en los métodos de establecimiento para desambiguar las referencias de variables.

El segundo es cuando existe la necesidad de pasar la instancia de la clase actual como un argumento a un método de otro objeto.

El tercero es como una forma de llamar a constructores alternativos desde un constructor.

Sin embargo, alguien en el trabajo decidió también poner en funcionamiento las reglas de PMD / Checkstyle que nos obligan a poner "esto" delante de todas las variables y el método.  ¿Es realmente viable hacer eso o solo es detallado?

Relacionados: ¿Cuál es el estilo aceptado para ¿Está utilizando la palabra clave 'this' en Java?

    
pregunta Chris 12.09.2013 - 19:56

2 respuestas

17

Esta pregunta abarca el límite de la información basada en la opinión frente a la información objetiva; sin embargo, considero que es lo suficientemente valioso como para dejarlo abierto porque encuentro las respuestas habituales de "esta es una pregunta de estilo, haz lo que te gusta" demasiado simplista. Así que aquí está mi opinión señalada:

El uso de this para referirse a los atributos de una clase dentro de la clase es redundante, por lo que aumenta la verbosidad del código sin un beneficio claro. No solo puede casi siempre buscar el estado de una variable a través de las herramientas que usa; más importante, si tiene que buscarlo, entonces su clase es demasiado grande en primer lugar . Al igual que un método que requiere que se desplace hacia arriba para encontrar la declaración de una variable local es demasiado largo , si tiene que buscar un campo miembro al escribir código dentro de una clase, entonces ese la clase hace demasiado .

En otras palabras, el uso de this.fieldName , excepto la desambiguación, es innecesario, y si lo necesita por el motivo que comúnmente se indica, tiene más problemas que problemas de alcance.

    
respondido por el Kilian Foth 12.09.2013 - 20:55
2

Solo considerando Java: IHMO demasiado detallado.

Sin embargo, si estás en un entorno en el que cambias con frecuencia entre Java y Javascript, debes tener coherencia en el uso de "esto". podría tener beneficios. (Todavía lo consideraría demasiado detallado, pero puedo ver que se está haciendo el caso).

    
respondido por el ptyx 12.09.2013 - 21:04

Lea otras preguntas en las etiquetas