我有一个open
(或abstract
)public
class
,其中包含open
(或abstract
)fun
(或var
或val
),我不想暴露为public
。
不幸的是,我还需要从当前包中调用fun
。如果我将它标记为internal
,这个类不能从另一个包中正确继承(ide给出警告:继承不可见的抽象成员),如果我将它标记为protected
,则不能从当前包内部访问乐趣
有办法绕过这个吗?
肮脏的方法是添加代理内部方法并在包中调用该方法:
abstract class AbstractClass {
protected abstract fun isTrue(int: Int): Boolean
internal fun isTrueInternalProxy(int: Int): Boolean {
return isTrue(int)
}
}