2015-08-04 5 views
1

Есть ли какая-либо функциональность в Eclipse для рефакторинга моего кода, так что неквалифицированные обращения к полю получают код this? Например, я писал свой код в статических методах, но теперь хотел бы изменить их на нестатические методы. Я предпочитаю ставить свой код с this, чтобы он стал более понятным и понятным.Как добавить классификатор `this` в поля Java в Eclipse?

Я хотел бы простой способ для foo и bar здесь:

public class Example 
{ 
    private static String foo = "Hovercraft"; 
    private static int bar = 9001; 

    public static void main(String[] args) 
    { 
     System.out.println(foo + " has " + bar + " eels."); 
    } 
} 

превратиться в this.foo и this.bar после того как я изменить код, чтобы использовать не статические методы:

public class Example 
{ 
    private String foo; 
    private int bar; 

    public class Example(String theFoo, int theBar) 
    { 
     this.foo = theFoo; 
     this.bar = theBar; 
    } 

    public void run() 
    { 
     System.out.println(this.foo + " has " + this.bar + " eels."); 
    } 
} 

Из Конечно, было бы легко добавить this. вручную, если код такой короткий, но предположим, что у меня довольно большой фрагмент кода, по крайней мере, с несколькими десятками неквалифицированных полевых обращений. Как я буду делать это автоматически в Eclipse? Я не могу использовать «Refactor> Rename», потому что это не позволит мне использовать this.foo для имени, а использование «Find/Replace» - это боль, поскольку оно также изменит объявления и, возможно, другие локальные переменные, которые были названы одинаковыми ,

Я нашел один способ сделать это после того, как тыкнул вокруг, прежде чем публиковать этот вопрос, поэтому я добавлю его в качестве ответа, но мне интересно, не хватает ли я других очевидных способов сделать это.

ответ

6

Eclipse предлагает автоматическую очистку кода в разделе «Источник> Очистка». Для автоматического добавления this спецификатор при очистке, «Настройка» для измерения профиля очистки

Тогда под «Обращается член» проверить «Non статический доступ» окна и выберите «Всегда».

«ОК> Готово» следует добавить this. к любым безоговорочным доступам.

Смежные вопросы