2015-05-05 5 views
11

Ich arbeite an einem Projekt, wo frühere Entwickler viele this.x Code hinzugefügt haben, die meiner Meinung nach länger und damit weniger lesbar macht. Und es wurde durch eine Eclipse-Save-Aktion überall im Projekt platziert.IntelliJ/Android Studio: Entferne unnötige Verwendung von 'this.'

Was ich suche ist ein IntelliJ Refactoring Methode, die ich alle selbst Verweise auf das gesamte Projekt Refactoring kann, so dass diese:

this.something = "foo"; 

wird dies:

something = "foo"; 

Ist Gibt es so etwas (ich benutze Android Studio 1.2), oder muss ich einen Regex Replace ausführen und sicherstellen, dass nichts kaputt geht?

Antwort

22

Ein Weg, den Sie erreichen können, ist mit Inspections. Sie können die Inspektionen bearbeiten, die auf Ihrem Code ausgeführt werden, indem Sie zu Einstellungen>Editor>Inspektionen gehen. Die eine, die Sie ändern möchten, ist innerhalb Java>Code Style Probleme und es heißt "Unnötig" dieser "Qualifier" gefunden.

Nach Prüfung und Anwendung dieser Prüfung werden Bereiche des Codes hervorgehoben, die unnötigerweise das Schlüsselwort this verwenden. Im Moment hat dies keine unmittelbare Auswirkung auf Ihre Codebasis und Sie müssten jede Instanz nacheinander durchlaufen. Um gehen, um eine Charge von Inspektionen Warnungen zu beheben dann Analysieren>Code Inspizieren ...

Von dieser Option können Sie wählen, können die Prüfung auf bestimmte Dateien oder das gesamte Projekt auszuführen. Dadurch werden alle Code-Instanzen hervorgehoben, die mit Ihren Prüfregeln kollidieren, z. B. diese neu hinzugefügte Regel. Um den Fix zu übernehmen, klicken Sie mit der rechten Maustaste auf das Problem oder die Gruppe von Problemen, die Sie beheben möchten, und wählen Sie dann Apply fix.

enter image description here

+0

Gute Arbeit! Dies ist eine viel bessere Lösung als meine. – jimpanzer

+1

Wenn diese Option in 15.0.2 eingestellt ist, bietet IntelliJ an, Code zu bereinigen, wenn sich der Cursor auf einem unnötigen "This" befindet und Sie Alt + Enter drücken. Dies wird alle unnötigen 'this.'-Vorkommen entfernen. –

-1

Ich glaube, Sie verwenden können:

  1. CTRL +SHIFT + R
  2. Text zu finden "diese \".
  3. Ersetzen durch ""

, dass Ihr Problem lösen soll.

+1

Das könnte Code an einigen Stellen brechen. Nehmen wir an, Sie haben 'public void setFoo (Foo foo) {this.foo = foo; } 'dann Suche und Ersetzen würde es brechen, weil in diesem Fall' this.' nicht unnötig ist. –

+0

@BohuslavBurghardt, ja, du hast Recht. Also meine Antwort ist nicht sicher. – jimpanzer

Verwandte Themen