如何在不同模块中隐藏 Java 中 Kotlin 内部类的可见性?

2023-12-26

我正在研究用 Kotlin 开发的 Android 库。我将某些类的访问修饰符保留为internal。内部类仅在 Kotlin 的该库模块中可见。如果我在应用程序中实现该库,那么它根本不可见。

但从 Java 代码访问该库时就会出现问题。如果我创建.java文件及其类型名称internal类库,然后 IDE 建议名称,并且它已解析并编译,没有任何错误。

For e.g.

库模块:

internal class LibClass {
    // Fields and Methods
}

在实现上述库后演示应用模块:

应用模块

Kotlin:
fun stuff() {
    val lib = LibClass() // Error.. Not resolving
}
Java:
public void stuff() {
    LibClass lib = new LibClass() // Successfully resolving and compiling
}

这就是问题所在。如何才能从 Java 中保护该类?

谢谢你!


我看到您有一个带有内部修饰符的类,该类无法在 kotlin 类中实例化,但可以在 Java 文件中实例化。 如果它是一个独立的类,您可以将其构造函数设为私有,并允许使用静态方法(Companion 对象)进行实例化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不同模块中隐藏 Java 中 Kotlin 内部类的可见性? 的相关文章

  • 启动画面反应本机后出现白屏

    编辑 似乎是因为 MainActivity 加载太重而生成白屏 我设法首先使用本机启动屏幕来解决 然后在本机被杀死后立即基于下一个插件的 js 实现 我做了一些修改完美匹配两个启动画面https github com crazycodebo
  • Android 的 GCM 推送通知[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近 我尝试学习 GCM 并制作一个测试应用程序 该应用程序将通过 androids 官方网站获取 an
  • 关于android Sqlite在多进程情况下的安全性

    在我的应用程序中 存在多个进程 并且在每个进程中 我需要访问同一个SQLite数据库 当然 这意味着超过2个线程 所以我不仅担心SQLite的线程安全性 还担心SQLite的线程安全性 还有过程安全 这种情况的一种解决方案是使用内容提供者
  • Android 视图展开动画

    我正在尝试编辑这些来源 https github com gabrielemariotti androiddev tree master AnimationTest创建一个适用于我所有视图的简单函数 Override public void
  • 找不到 RecyclerView 类 android.support.v7.recyclerview.R$styleable

    我在我的应用程序上使用 RecyclerView 但在运行时应用程序崩溃并且我的 logcat 读取 java lang RuntimeException Unable to start activity ComponentInfo com
  • API 31 上是否有官方方法来提供文件关联,可能使用 pathSuffix/pathAdvancedPattern?

    背景 现代桌面操作系统上的一个众所周知的功能是能够处理文件 允许用户从文件管理器和其他应用程序中打开它们 作为 文件关联 配置 问题 到目前为止 对于用户和开发人员来说 在 Android 上设置文件类型关联并不是一件很方便的事情 在 An
  • 要在进程中运行 dex,Gradle 守护进程需要更大的堆。目前有 910 MB

    实际上主要错误是 java exe完成非零退出值 1 首先我告诉你安装 studio 后遇到的每个问题 三天前 我刚刚安装了 android studio 并创建了新项目 1 首先它抛出错误 插件太旧 请更新到更新的版本 在谷歌上搜索后我改
  • 使用 appcelerator titan 在 android 中后退按钮退出应用程序

    我是钛开发的新手 在本机 android 中 如果我们按下后退按钮 则仅当前活动将被关闭 并且它将返回到上一个活动 但是当我使用 Titanium 在 Android 中按下后退按钮时 它会从应用程序退出 我怎样才能改变这种行为 有两种类型
  • Android Activity 和 Service 关系 - 暂停后、停止后

    假设创建了 Activity A 然后 A 启动了一个 Service S 并将其自身绑定到 S S 通知 A 更新 这将导致 A 的状态发生变化 Android 暂停或停止 A 后 A 和 S 会发生什么 例如 暂停 A 是否会自动解除它
  • 适用于 Droid 手机的数学或 LaTeX 引擎 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Android 手机有可用的数学或 LaTeX 引擎吗 我最喜欢的抽认卡应用程序 AnyMemo 似乎
  • 完成特定 Activity 的所有实例

    应用程序中可以有很多活动 最后启动的活动保留在堆栈顶部 按下后它会完成当前活动 我有一系列活动 这是流程 如果我们有 A B C 1 D C 2 活动 C 1 和 C 2 是在导航应用程序时启动的活动 C 的两个不同实例 因此 必需的是清除
  • 如何通过代码设置Fragment标签?

    我还没有找到类似的东西setTag String tagName 方法中的Fragment班级 唯一的方法是设置Fragment我发现的标签是通过做FragmentTransaction并传递标签名称作为参数 这是显式设置的唯一方法吗Fra
  • 首选项活动中的广告“没有足够的空间来显示广告!需要:<480, 75>,拥有:<432, 1073741823>”

    我试图在偏好活动中展示广告 但它从未出现 Logcat 始终显示消息 没有足够的空间来显示广告 想要 有 这就是我制作广告的方式 我对广告有自定义偏好 public class AdmobPreference extends Prefere
  • 在 android studio 上单击推送通知后重定向到特定活动

    我正在努力开发一个 Android 应用程序 以便在单击所有传入的推送通知时将应用程序重定向到特定的活动页面 我是 Android 开发新手 对我的编程感到抱歉 下面是推送通知部分的 android manifest xml 如果对此主题有
  • Android - 具有可序列化对象的 SharedPreferences

    我知道 SharedPreferences 有putString putFloat putLong putInt and putBoolean 但我需要存储一个类型的对象Serializable in SharedPreferences 我
  • android sqlite 如果不存在则创建表

    创建新表时遇到一点问题 当我使用 CREATE TABLE 命令时 我的新表按应有的方式形成 但是当我退出活动时 应用程序崩溃 并且我在 logcat 中得到一个表已存在 如果我使用 CREATE TABLE IF NOT EXISTS 则
  • Android EditText 不起作用,android:imeOptions="actionNext" android:inputType="phone"

    我已经尝试过了 只有删除android inputType phone 键盘回车可以跳转到下一个EditText 不知道大家之间是否有过一些冲突android imeOptions actionNext and android inputT
  • Android Windows:它们何时以及如何创建?

    我已经阅读了标准的 Windows 相关文档并翻阅了 一堆源代码 试图理解 Android 如何以及何时 窗口已创建 我相信我已经拥抱它并愿意 对其进行验证或更正 据我所知 只有两种方法可以获得 Window 对象的句柄 1 Activit
  • Android应用程序中的模式输入

    我想知道是否有其他替代方案可以替代 Android 上平庸的 EditText 密码输入 是否有 API 或开源代码可以集成到我的应用程序中 类似于锁屏图案解锁 Intent 可能会返回哈希值 数字 字符串或代表用户输入的模式的任何内容 我
  • 同时有两个操作栏(底部和向上)?

    我需要制作两个操作栏 顺便说一下我正在使用actionBarSherlock 所以我真正需要的是在正常操作栏上放置一个 欢迎屏幕 开关 并添加两个正常的 ActionBar 操作选项 与我需要的类似的是 Gmail 和地图 如下所示 htt

随机推荐

  • NPM 搜索:内存不足

    在 ubuntu 14 10 3 13 0 76 generic 120 Ubuntu SMP Mon Jan 18 15 59 10 UTC 2016 x86 64 x86 64 x86 64 GNU Linux 上 当我这样做时 sud
  • 实现 AsyncTask 的技巧

    大家好 我有一个应用程序 可以在位图上放置一个圆圈 并使用滑动条更改圆圈内像素的 RGB 值 我想使用 asynctask 来加速更改像素的过程 我不知道从哪里开始 我在活动文件底部注释掉了一些代码 因为这是我第一次尝试 谁能指出我如何实现
  • 使用 OpenCV 进行头部(和肩部)检测

    如果我问了一个太新手的问题 请提前道歉 我是 OpenCV 的初学者 我已经完成了一些教程 但我还没有很好地掌握它的概念 问题 如何使用 OpenCV 进行头部检测 不是面部检测 例如在公共汽车或房间内的照片中 注意 我不想做人脸检测 只需
  • 如何使用 firestore 的安全规则验证数组值?

    我有一个创建以下 JSON 结构的表单 reviewed false title Just a title user UYV9TRKXfNW1NeCyFyfjZfagJ8B items age 33 experience Newcomer
  • 在 Laravel Blade 中检索外部 api 的数据

    public function RetrieveStatus response Http get https exemple exemple com fr api
  • 在这种情况下,一般异常处理不是那么糟糕吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在下面的代码中 我尝试发送一组通知 我想知道通知是否已成功发送 稍后将其放入数据库中 这样就不再发送它 我抓到了是不是很糟糕Exception这
  • Django - 检查用户是否对每个网址进行了身份验证

    在我的 html 上 我可以使用以下语法检查用户是否已登录 if user is authenticated div div else p Please Log in p endif 但是 如果我想检查我正在渲染的每个 html 文件的用户
  • “调用/应用”和“绑定”之间有什么区别[重复]

    这个问题在这里已经有答案了 var obj x 81 getX function console log this x var getX obj getX bind obj use obj as this getX 81 var getX
  • HttpDelete 中的 setEntity

    HttpDelete 是否包含 setEntity 等方法 如 HttpPost 或 HttpPut 当我使用 HttpPost 时 我会做这样的事情 httppost setEntity new UrlEncodedFormEntity
  • Rails 3 序列化问题

    我有一个在 ror 2 3 x 上运行良好的应用程序 我在升级到 Rails 3 时遇到序列化问题 代码看起来像这样 class PaymentTransaction lt ActiveRecord Base serialize respo
  • Spring Boot Actuator - 多个健康端点

    有没有办法在 Spring Boot 应用程序上支持多个健康端点 原因如下 标准执行器运行状况检查很棒 内置检查很棒 自定义选项很棒 对于单个用例 报告一般应用程序运行状况 但我想要可以从 AWS Elastic Load Balancer
  • 如何在 iPhone/Mac 上使用 CoreAudio 合成声音

    我想在 iPhone 中播放合成声音 我不想使用预先录制的声音并使用 SystemSoundID 来播放现有的二进制文件 而是对其进行合成 部分原因是我希望能够连续播放声音 例如 当用户的手指位于屏幕上时 而不是一次性的声音样本 如果我想合
  • PyMongo 的批量写入操作功能与生成器

    我想使用 PyMongo 的bulk http api mongodb org python current examples bulk html执行写操作的写操作功能 分批进行 以减少网络往返次数并提高吞吐量 我还发现here http
  • SQL 2008 - INFORMATION_SCHEMA 视图中的外键约束

    我正在编写一个 C 单元测试 用于根据目标数据库 始终是 SQL 2008 以及数据映射到的类来验证 ORM 类的字符串属性 检查指定的外键在数据库中是否有效很容易 static private bool ConstraintExsits
  • 指向非静态成员函数的指针“正式”不被视为指针

    我碰到this https stackoverflow com a 71870413 12002570其中指出 成员函数指针不是指针 指向非成员函数 包括静态成员函数 的指针是指针 上面的引用似乎表明指向非静态成员函数的指针不是指针 同样
  • 如何在 Xcode 4.5“命令行工具”项目中设置工作逻辑单元测试目标?

    无法为特定场景设置单元测试 这就是我正在尝试的 在 Xcode 4 5 中 我创建了一个简单的 OSX 命令行工具 应用项目 基金会 请注意 Xcodedoes not提供自动将单元测试添加到 命令行工具 项目的选项 所以请不要建议勾选复选
  • 用于阻止 Swift 的 Safari 内容的多个过滤器

    我正在构建一个简单的内容阻止应用程序 它有效 但我想应用过滤器 要阻止哪个网站 不阻止哪个网站 UISwitches 保存到NSUserDefaults 因为内容阻止扩展使用 json 所以我不清楚如何选择多个 json 文件同时运行 有什
  • GAE TextProperty 中的“=”符号

    通过 POST 添加文本时 我在文本属性中遇到了奇怪的附加符号 例如 队伍带着不可阻挡的愤怒回来了 他们被警察 阿朗佐和尤马追赶 Vinnie Shorty 和 Kiro 92 的技能将受到考验 该文本中不应有任何 符号 我的代码是 cla
  • 具有自定义网络的 Docker swarm

    我正在尝试弄清楚如何在 Docker 中正确使用 Swarm 模式 首先 我尝试在 2 个工作人员和管理人员计算机上运行容器 而不指定自定义网络 因此我使用默认的入口覆盖网络 但是 如果我使用入口网络 由于某种原因我无法解析tasks my
  • 如何在不同模块中隐藏 Java 中 Kotlin 内部类的可见性?

    我正在研究用 Kotlin 开发的 Android 库 我将某些类的访问修饰符保留为internal 内部类仅在 Kotlin 的该库模块中可见 如果我在应用程序中实现该库 那么它根本不可见 但从 Java 代码访问该库时就会出现问题 如果