Intellij перемещает / реорганизует приватные поля и их методы доступа в другой класс - PullRequest
0 голосов
/ 21 апреля 2020

В моем проекте Java у меня есть объект ответа Java, который имеет несколько приватных полей и их методы получения и установки.

public class Response {
        String resp1Id;
        String resp1Message;
        String resp2Id;
        String resp2Message;
        //getters & setters
}

Я хочу сгруппировать элементы в их собственные классы и использовать эти объекты в моем объекте ответа, как показано ниже, с использованием рефакторинга Intellij. Объект ответа используется в нескольких местах, и я не могу изменить его вручную. Я пытался сделать это, используя intellj refactor / extract для класса, но не смог сделать это так, как я хочу. Если я использую извлечение-делегат, то получится иначе, чего я не хочу. Любая помощь приветствуется.

public class Response {
        Resp1 resp1;
        Resp2 resp2Id;
        //getters & setters
}
public class Resp1 {
        String resp1Id;
        String resp1Message;
        //getters & setters
}
public class Resp2 {
        String resp2Id;
        String resp2Message;
        //getters & setters
}

1 Ответ

0 голосов
/ 23 апреля 2020

Я достиг этого, выполнив следующие шаги. В Intellij нет одношагового инструмента рефакторинга. [Получил подсказку от Может ли IntelliJ рефакторинг свойств (get / setters) для полей?

1) Сделать поле public c в Response. java class.

public String resp1Id;

2) Рефакторинг методов доступа (как геттеров, так и сеттеров) с использованием рефакторинга inline ... inline .... (пример кода после этого шага)

response.resp1Id = "abcdef";
String id = response.resp1Id;

3) Извлечь поле в класс делегата Новый класс будет создан с полями. (пример кода после этого шага)

public String resp1Id;

4) Refactor - инкапсулирует поля в новом классе, чтобы сделать их закрытыми и создать методы доступа. (пример кода после этого шага)

response.getResp1().setResp1Id("ram");
String kumar = response.getResp1().getResp1Id();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...