gpt4 book ai didi

java - 解决方法以为Mingw/ios/Linus/其他源集导入Java库?

转载 作者:行者123 更新时间:2023-12-02 12:37:13 25 4
gpt4 key购买 nike

我知道,要为某些OS源集安装JVM,这是一个很奇怪的用例,请允许我仔细阅读一下用例。
我正在编写一个简单的实用程序,用于包装对steamCMD(https://developer.valvesoftware.com/wiki/SteamCMD)的调用,该程序具有依赖于平台的安装过程。所以,我自然应该

// commonMain / steamCmdGetter.kt
expect interface SteamCmdGetter {
fun installClient()
}
// [OS] / steamCmdGetter.kt
actual interface SteamCmdGetter { /* ... */ }
另一方面,我的实用程序还需要处理文件存储(例如,下载并检查客户端在存储中是否存在),因此我也可以使用文件类。
// commonMain / File.kt
expect interface File
我知道JB团队在其教程中有明确的建议。

We recommend that you use expected and actual declarations only for Kotlin declarations that have platform-specific dependencies. It is better to implement as much functionality as possible in the shared module even if doing so takes more time.


但是,在警告的警告下,我不希望编写 MyFile实现来省去重做这种常见任务的麻烦,但是 java.io.File在场景中是如此占主导地位,以至于我在Gradle / Maven上找不到任何Kotlin替代品。
这是否意味着我最终不得不写 MyFile?还是有将Java库导入Kotlin MPP平台sourceSets的解决方法?

最佳答案

首先,一个人只能将Java库用于jvmandroid目标,而不能用于Kotlin / Multiplatform提供的其他库。实际上,这正是使用Kotlin / JVM的目标子集。 Kotlin / JS和Kotlin / Native都不提供与Java的互操作性,它们具有自己的互操作功能。请参阅this page以获取有关差异的一些详细信息。关于特别处理文件。答案很可能是肯定的,您将必须针对每个目标实施它。这种工作通常是特定于平台的,因为它几乎不依赖于OS实施。但是,您搜索的部分功能肯定应该在platform.posix.* platform library中找到,即使它看起来更像C风格。

附言在网上快速搜索使我进入了这个社区库list,也许会有所帮助。另外,kotlinlang Slack社区(查找链接here)可能有一些有趣的解决方案可以共享。

关于java - 解决方法以为Mingw/ios/Linus/其他源集导入Java库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64149715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com