假设我有2个模块。
一种叫做“接收器”,另一种叫做“修改器”。
在Receiver模块中,我有一个名为“ com.danii.Receiver”的程序包,其中包含一个名为“ DataReceiver”的类。我在Receiver模块中还有一个名为“ com.danii.Entities”的程序包,其中有一个名为“ Data”的类。 Receiver模块当前仅导出com.danii.Receiver。
当我在其中运行函数时,类DataReceiver将创建一个新的Data对象,并将其发送回去。
在我的Modifier模块中,将其设置为要求com.danii.Receiver,并且希望通过DataReceiver接收一些数据。我尝试这样做,但是无论我做什么,我都无法读取它,因为它无法访问Data类。
我怎样才能读取DataReceiver给我的数据,但仍然无法创建数据?
最佳答案
一种可以让您保留当前结构的大部分内容的选项是,使用具有由Data实现的接口的另一个导出包(我现在将其称为IData)。然后,DataReceiver可以返回一个IData对象(实现仍将通过Data类实现)。 IData可以位于其自己的导出包中,也可以位于您已经导出的Receiver包中。