Можно ли запретить прямой импорт в Java? - PullRequest
0 голосов
/ 11 марта 2020

Из-за структуры наших объектов у нас может быть несколько случаев, когда подкласс имеет одно и то же имя другого подкласса в другом родительском объекте.

В IDE typeahead, ввод имени класса часто приводит к в IDE, помогая динамически добавлять импорт.

Однако, если существует несколько подклассов с этим именем, слишком просто импортировать неправильный подкласс.

Итак, цель здесь состоит в том, чтобы способ спроектировать подкласс таким образом, чтобы на него можно было ссылаться только через его родительский класс.

Например, скажем:

public static class PageOne {
    public static class HeaderSection {
        String foo;
    }
}
public static class PageTwo {
    public static class HeaderSection {
        String foo;
    }
}

Я хотел бы иметь возможность предотвратить кого-либо просто ссылаться на HeaderSection.foo и вместо этого требовать, чтобы они ссылались, например, PageOne.HeaderSection.foo. Другими словами, сделать недопустимым импорт PageOne.HeaderSection, но допустимым только импорт PageOne.

(или это просто невозможно?)

...