【发布时间】:2018-01-05 16:47:45
【问题描述】:
我正在使用 Kotlin 开发 Android crypto library。我有几个 internal 类在 Java 应用程序中公开可见。在文档中找到this。
internal声明在 Java 中变为public。internal类的成员经过名称修改,以防止在 Java 中意外使用它们,并允许重载具有相同签名但根据 Kotlin 规则看不到彼此的成员;
有没有办法解决这个问题?
【问题讨论】:
-
你可以向下使用private可见性。顶级类型的可见性是 Java 中的 package 可见性。
-
为了保持代码的可读性,我不能将它们设为私有。
-
好吧。没有办法阻止客户端代码使用您的内部 Kotlin 类。
@PublishedApi只支持警告,但是客户端代码可以强制调用你的内部类。 -
@holi-java 太糟糕了。可能将不得不牺牲模块化并使它们成为
private -
@vihkat 我现在将
internal object与@JvmSynthetic internal fun一起使用。在这里查看github.com/ryan652/EasyCrypt/blob/master/easycrypt/src/main/…
标签: java android class kotlin public