Java-модули: имеют доступ к объекту, но не могут создать объект - PullRequest
0 голосов
/ 12 ноября 2018

Допустим, у меня есть 2 модуля.

Один называется «Приемник», а другой - «Модификатор».

В модуле Receiver у меня есть пакет с именем «com.danii.Receiver» с классом «DataReceiver». И у меня есть еще один пакет в модуле Receiver под названием «com.danii.Entities», с классом «Данные». Модуль Receiver в настоящее время экспортирует только com.danii.Receiver.

Класс DataReceiver, когда я запускаю в нем функцию, создаст новый объект Data и отправит его обратно.

В моём модуле Модификаторов он настроен как требующий com.danii.Receiver, и я хочу получать некоторые Данные через DataReceiver. Я пытаюсь это сделать, но независимо от того, что я делаю, я не могу прочитать это, потому что у него нет доступа к классу Data.

Как я могу иметь доступ для чтения данных, которые мне дает DataReceiver, но по-прежнему не может создавать данные?

1 Ответ

0 голосов
/ 12 ноября 2018

Один из вариантов, который позволит вам сохранить большинство аспектов вашей текущей структуры, - это иметь другой экспортированный пакет с интерфейсом, реализованным Data (сейчас я назову его IData). Затем DataReceiver может вернуть объект IData (реализация все равно будет осуществляться через класс Data). IData может быть в его собственном экспортированном пакете или в пакете Receiver, который вы уже экспортируете.

...