我想写一个Android库,它反过来使用另一个Androd库。
假设我想要编写使用另一个libLow
的libHigh
在libLow中有一个接口:
interface LowLevelInterface{
fun methodA()
}
我在我的高级库libHigh中实现了这一点:
open class OpenClassImpl : LowLevelInterface {
override fun methodA(){//..}
}
它是一个“开放”类,因为稍后在应用层,我希望从OpenClassImpl
扩展。但我不想让'LowLevelInterface‘界面在以后的上层应用程序使用中可见。
如何对上层应用程序级别的libLow隐藏界面?
发布于 2019-02-22 05:14:13
这取决于您现有的代码是否可以工作,或者需要多大的努力,但您可以使用一个属性来实现接口,而不是直接执行:
open class OpenClassImpl {
// or protected/private
internal val lowLevelImpl: LowLevelInterface = {
// can access privates of OpenClassImpl here
}
}
并更改相关调用以传递它。
https://stackoverflow.com/questions/54804286
复制相似问题