Uso eccessivo di "questo" parola chiave in Java [duplicato]

12
    

Questa domanda ha già una risposta qui:

    

Questa parola chiave viene utilizzata principalmente in tre situazioni.

Il primo e più comune è nei metodi setter per disambiguare i riferimenti variabili.

Il secondo è quando è necessario passare l'istanza della classe corrente come argomento a un metodo di un altro oggetto.

Il terzo è un modo per chiamare costruttori alternativi all'interno di un costruttore.

Tuttavia, qualcuno al lavoro ha deciso di mettere al lavoro una regola PMD / Checkstyle che ci costringe a mettere "questo" davanti a tutte le variabili e ai metodi.  È davvero fattibile farlo o è solo verboso?

Related: Qual è lo stile accettato per utilizzando la parola chiave "this" in Java?

    
posta Chris 12.09.2013 - 19:56
fonte

2 risposte

17

Questa domanda è a cavallo tra i limiti delle informazioni basate sull'opinione pubblica e quelle reali; tuttavia ritengo che sia abbastanza prezioso lasciare aperto perché trovo le solite risposte di "questa è una domanda di stile, fai quello che ti piace" troppo semplicistica. Quindi ecco la mia opinione puntata:

L'utilizzo di this per riferirsi agli attributi di una classe all'interno della classe è ridondante, e quindi aumenta la verbosità del codice senza alcun chiaro beneficio. Non solo puoi quasi sempre cercare lo stato di una variabile tramite gli strumenti che usi; ancora più importante, se devi cercare, allora la tua classe è troppo grande in primo luogo . Proprio come un metodo che richiede di scorrere verso l'alto per trovare la dichiarazione di una variabile locale è troppo lungo , se devi cercare un campo membro mentre scrivi il codice all'interno di una classe, allora che la classe fa troppo .

In altre parole, l'uso di this.fieldName ad eccezione della disambiguazione non è necessario cruft, e se ne hai bisogno per il motivo comunemente indicato, hai maggiori problemi rispetto ai problemi di ambito.

    
risposta data 12.09.2013 - 20:55
fonte
2

Considerando solo Java: IHMO troppo prolisso.

Tuttavia, se ci si trova in un ambiente in cui si passa frequentemente da Java a Javascript, con coerenza nell'utilizzo di "this". potrebbe avere benefici. (Lo considererei ancora troppo prolisso, ma posso vedere che il caso è stato creato).

    
risposta data 12.09.2013 - 21:04
fonte

Leggi altre domande sui tag