Как найти использование ОДНОЙ реализации метода интерфейса - PullRequest
2 голосов
/ 08 октября 2019

У меня есть проект с сотнями реализаций интерфейса. Я хотел бы найти использование метода только в ОДНОЙ реализации этого интерфейса. Intellij (и Eclipse) показывают мне все применения этого метода во всех реализациях - сотни.

Я выделяю метод в одной реализации интерфейса, щелкаю правой кнопкой мыши и выбираю «найти использования»,и он показывает мне все случаи использования этого метода во всех реализациях.

Ни один из вариантов использования в Intellij, кажется, не дает мне только одну реализацию.

public interface Dog {
    void bark(int volume);
}
public class Lab implements Dog {
    public void bark(int volume) {
        System.out.println("woof");
    }
}
public class Collie implements Dog {
    public void bark(int volume) {
        System.out.println("woof");
    }
}
public class Main {

    public static void main(String[] args) {
        Dog onyx = new Lab();
        Dog lassie = new Collie();


        onyx.bark(50);
        lassie.bark(20);
    }
}

Если я выделю метод Lab bark, нажмите показать использование, я хочу просто увидеть строку onyx.bark (50) в main.java, а не оба использования коры в main.java.

Я понимаю, что если я использую Lab, onyx = new Lab () и Collie lassie = new Collie () в основном классе, поиск ссылок будет работать, но проект написан не так. Возможно, в IDE нет способа определить реализующий класс, когда тип является интерфейсом, но это, безусловно, будет полезно.

1 Ответ

0 голосов
/ 09 октября 2019

Как говорится в комментариях, используемая реализация определяется во время выполнения, поэтому Intellij не может ограничить результаты использования одной реализацией. Тем не менее, поддержка Intellij предложила создать настраиваемую область для ограничения использования поиска. Это немного помогает, хотя создание области требует, чтобы вы знали общую область, в которой вы используете, что, возможно, именно то, что вы делали поиск в первую очередь. В моем случае я мог бы создать область действия, включающую только код, который наша компания сделала для проекта. Это уменьшило результаты с 500+ до примерно 80.

Чтобы создать настраиваемую область в Intellij, выберите File-settings-Внешний вид и поведение-Области. Нажмите на знак плюса в середине диалогового окна, выберите локальный или общий и назовите его. В правой половине диалогового окна вы можете включить / исключить / включить рекурсивно / исключить рекурсивные библиотеки, пакеты и т. Д.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...