我正在开发一个Android库.我想让实现我的库的用户无法访问一些类.主要是接口实现类.例如,我在moduleA中有以下类,
- 动物(界面)
- Dog(动物接口的实现)
- AnimalProvider(帮助从活动/任何视图初始化动物对象的对象)
由于我使用的是Kotlin,所以我将Dog
作为一个内部类,以使其在库范围之外无法访问.但是,问题是AnimalProvider
是一个具有称为getAnimalSource()
的公共函数的对象.像这样的,
object AnimalProvider {
fun getAnimalSource(
context: Context,
lifecycleOwner: LifecycleOwner
) = Dog( context = Context, lifecycleOwner = lifecycleOwner)
它会抛出一个错误,比如,
public function exposes its internal return type
.
我需要此函数从活动/视图初始化Animal
对象.我是否朝着正确的方向处理这个问题.?或者,发布android库时,隐藏具体类的正确方法是什么.?