2015-05-05 10 views
11

Sto lavorando a un progetto in cui gli sviluppatori precedenti hanno aggiunto un sacco di codice this.x che a mio parere lo rende più lungo e quindi meno leggibile. Ed è stato messo in tutto il progetto da alcune azioni di salvataggio di Eclipse.IntelliJ/Android Studio: rimuovere l'uso non necessario di "questo".

Quello che sto cercando è un refactoring metodo IntelliJ che posso refactoring tutte le auto-riferimenti su tutto il progetto in modo che questo:

this.something = "foo"; 

diventa questo:

something = "foo"; 

è c'è qualcosa di simile (sto usando Android Studio 1.2), o devo eseguire una regex sostitutiva e fare in modo che non si rompa nulla?

risposta

22

Un modo per ottenerlo è utilizzare Inspections. È possibile modificare le ispezioni eseguite sul codice andando a Impostazioni>Editor>Ispezioni. Quello che si desidera modificare si trova all'interno di Java>Problemi di stile di codice e si chiama "Non necessario" questo "qualificatore".

Dopo aver controllato e applicato questa ispezione, verranno evidenziate le aree di codice che utilizzano inutilmente la parola chiave this. Al momento questo non avrà alcun effetto immediato sul tuo codice base e dovrai passare per ciascuna istanza uno per uno. Al fine di risolvere una serie di ispezioni avvertimenti poi andare a analizzare>ispezionare il codice ...

Da questa opzione è possibile scegliere di eseguire l'ispezione in determinati file o l'intero progetto. Questo evidenzierà qualsiasi istanza di codice che è in conflitto con le tue regole di ispezione, ad esempio questa regola appena aggiunta. Per applicare la correzione, è sufficiente fare clic con il pulsante destro del mouse sul problema o sul gruppo di problemi che si desidera risolvere, quindi selezionare Applicare la correzione.

enter image description here

+0

Buon lavoro! Questa è una soluzione molto migliore della mia. – jimpanzer

+1

Quando questa opzione è impostata in 15.0.2, IntelliJ offre "Pulisci codice" quando il cursore si trova su un non necessario 'questo" e premi Alt + Invio. Questo rimuoverà tutte le ricorrenze inutili. –

-1

Penso che si può utilizzare:

  1. CTRL +SHIFT +R
  2. Text to find "questo \".
  3. Sostituire con ""

Questo dovrebbe risolvere il problema.

+1

Questo potrebbe potenzialmente interrompere il codice in alcuni punti. Diciamo che se hai "public void setFoo (Foo foo) {this.foo = foo; } 'allora la ricerca e la sostituzione l'interromperanno, perché in questo caso' questo 'non è necessario. –

+0

@BohuslavBurghardt, sì, hai ragione. Quindi la mia risposta non è sicura. – jimpanzer

Problemi correlati