假设您正在编写一个Android项目(不是库)。所有文件都编译在一起,因此......在这种情况下使用内部
可见性修饰符有任何意义吗?
不,因为您只有一个模块。看看定义。
内部可见性修饰符意味着该成员在同一个模块中是可见的。更具体地说,模块是一组编译在一起的Kotlin文件:
(来源)
内部
仅对多个模块有效。
您可以在一个Android应用程序中拥有多个相互依赖的Gradle模块,在这种情况下,internal
将可见性限制在给定模块内。例如,如果您有一个单独的<code>data</code>模块来处理数据库和网络任务,并且您只想从该模块中公开几个接口,而不想公开它们的实现,那么这可能很有用。
否则,如果您没有使用多个模块,并且您的整个应用程序只是在默认的< code>app模块中,那么< code>internal修饰符与默认的< code>public可见性相比没有任何区别。
我无法理解内部访问修饰符。在我的例子中,我无法产生任何与公共行为不同的情况。即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(来自与jar中使用的包无关的不同包)。在文档中使用了术语模块,但我无法找到模块的确切含义。 因此,我的问题是: > kotlin中的模块是什么? 内部访问修饰符与公共修饰符有何不同?
问题内容: 我正在Kotlin中开发一个Android 密码库。我有几个类在Java应用程序中公开可见。在文档中找到了这一点。 声明成为Java。类的成员会经历名称重整,以使其更难从Java中意外使用它们,并允许重载具有相同签名但根据Kotlin规则彼此不可见的成员。 有办法解决这个问题吗? 问题答案: 我已经看到您所有的内部类都涉及加密和解密。 您可以通过定义一个顶级函数并将其标记为 ,然后将E
我得到了一个适配器,其中包含2和2。开始时,EditTexts是可见的,而Textviews则消失了。如果我点击一个按钮,如果在1个(或两者)EditText中写的是好答案,则专用EditText被设置为gone,而Textview(显示答案)现在被设置为visible。问题是这些可见性更改没有保存,当我退出并回到这个Viewpager时,Textviews没有了,EditText也可见了,就好像
问题内容: 考虑以下情况: 从Eclipse中的警告中,我引用:Java编译器通过合成访问器方法模拟构造函数AB()。我想编译器现在可以继续进行,并为B创建一个额外的“水下”构造函数。 我觉得这很奇怪:为什么类B在A的ako字段中不可见?并且:这是否意味着B类在运行时不再是私有的?并且:为什么B类的protected关键字表现不同? 问题答案: 内部类本质上是Java 1.1中引入的一种hack。
每当我试图更改可见性的状态时,setState都不起作用,尽管在控制台中打印的消息被更正了。这是我的浮动操作按钮缠绕了几个小部件。问题是每当我点击它时,isVisible属性应该被更改为false,它应该是不可见的,但这并没有发生。“Pressed Undo”(按下撤消)打印在控制台中。
Kotlin中这些修饰符是与我们Java中的使用是有些不同的。在这个语言中默认的修饰符是public,这节约了很多的时间和字符。但是这里有一个详细的解释关于在Kotlin中不同的可见性修饰符是怎么工作的。