Служебный класс вместо средства получения суперкласса

#java #module

#java #модуль

Вопрос:

У меня следующая структура пакета:

  • a (содержит A.java , AUtils.java ) — неэкспортируемая упаковка
  • b (содержит B.java , который является подклассом) — экспортированный пакет
  • c (содержит C.java , который является подклассом, но использует B и его информацию) — экспортированный пакет

Класс A содержит средство получения частного поля пакета getInfo() . Я не хочу, чтобы он был доступен из моего модуля. Классы B и C нуждаются в доступе getInfo() , поэтому я создал AUtils.java utility class, который в основном позволяет всем моим классам получать доступ к получателю через метод AUtils.getInfo(A aInstance) .

Считается ли это плохой практикой? Есть ли какой-нибудь более простой способ достичь моей цели?

Ответ №1:

вы можете использовать модификатор « protected » для getInfo() метода

Комментарии:

1. Я забыл упомянуть, что класс C использует класс B, поэтому B.getInfo() не может быть доступен внутри C