问题标签 [kotlin-experimental]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
925 浏览

android - 找不到引用的类 kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck

当使用 Kotlin 为 Android 项目启用 ProGuard 时,Gradle 构建失败并出现以下错误:

警告:HomeChargerLocation:找不到引用的类 kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck

警告:HomeChargerLocation$Address:找不到引用的类 kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck

警告:HomeChargerLocation$Address$Creator:找不到引用的类 kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck

警告:HomeChargerLocation$Car:找不到引用的类 kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck

警告:HomeChargerLocation$Car$Creator:找不到引用的类 kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck

警告:HomeChargerLocation$Creator:找不到引用的类 kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck

警告:处理任务时出现异常 java.io.IOException:请先更正上述警告。

对应类:https ://gist.github.com/makovkastar/cfa4bf1bea38556279f20eef46001cf8

我认为它与@ParcelizeKotlin 实验包中的注释有关,因为当我们开始使用它时就出现了问题。

更新:我在 Kotlin 错误跟踪器中创建了一个问题 - https://youtrack.jetbrains.com/issue/KT-21628

0 投票
4 回答
4575 浏览

kotlin - kotlin async 无法编译

以下代码无法编译,尽管文档说它应该像这样简单:

错误是:

0 投票
1 回答
443 浏览

kotlin - JUnit 测试中的 Kotlin 内联类

我试图理解内联类的概念 - 它们是在运行时内联的单个属性的简单对象包装器。这意味着,类的实际初始化不会在运行时发生

我正在尝试编写简单的测试,它将在 JUnit 测试期间直接显示我的上述解释,如下所示:

不幸的是,这个测试失败了,这让我想到为什么在assertEquals()实际展开的 String 值没有被比较,而是实际的内联类(应该在运行时展开)?

0 投票
1 回答
79 浏览

arrays - UByteArray 相等运算符

在 Kotlin 代码中,我有两个UByteArray对象,我想知道它们是否有相同的东西:

相等运算符是否足够,还是我必须逐字节比较两个字节?

0 投票
3 回答
944 浏览

android - Room database with Kotlin inline class as an Entity field

I am trying to get Room(https://developer.android.com/topic/libraries/architecture/room) work with Kotlin's inline classes as described in Jake Whartons article Inline Classes Make Great Database IDs:

When compiling this Room complains that

Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).

Looking into the generated Java code I find:

Mysteriously the default constructor is private now.

When using String as a type for id (or a typealias), the generated Java class constructor looks like expected:

Does somebody now how to keep the default constructor public while using Inline Classes as data entity properties?

0 投票
3 回答
988 浏览

android - Kotlin 1.3.50 Parcelize 未解决的参考错误

运行我的第一个 android 应用程序,kotlin 1.3.50。我最初实现了 Parcelable,但切换到 parcelize 然后添加了枚举。这是我的数据类

一个问题提到 build.gradle 中的插件顺序是问题的根源。这是我的

知道为什么我@Parcelize 无法解决吗?

0 投票
2 回答
1522 浏览

android-studio - 如何在项目范围内使用 Kotlin ExperimentalUnsignedTypes (AndroidStudio)

我正在尝试@ExperimentalUnsignedTypes在我的 AndroidStudio 项目中使用。看来我必须把它放在任何地方,所以我宁愿在项目范围内设置它。

文件

除非使用 UseExperimental 注释明确选择加入,例如 @UseExperimental(ExperimentalUnsignedTypes::class) 或 -Xuse-experimental=kotlin.ExperimentalUnsignedTypes 编译器选项,否则此类 API 的使用将被报告为警告。

尽职尽责,我调整了我的Preferences>>Other Settings>>Kotlin Compiler

在此处输入图像描述

但是在清理/制作后我仍然会收到(很多)警告。有人建议我也添加-XXLanguage:+InlineClasses到同一行。但结果是一样的。然后我注意到在同一首选项窗格的顶部它说:

在此处输入图像描述

这是我的问题吗?如果是这样,我在哪里可以调整我的应用程序设置以使这些编译器设置有效?

0 投票
4 回答
1270 浏览

android - 在整个应用程序中处理多个实验性注释

我有一个应用程序大量使用 Jetpack Compose 的实验性功能,因此我必须在可组合项上声明一堆注释。由于这些注释要求调用者也声明它们,所以我最终遇到了一种情况,即我有一个使用以下代码的活动:

避免这种情况的另一种方法是使用,@OptIn但由于每个声明只允许一个,因此它不适用于具有多个实验性功能的我的情况。

无论如何……这很好用——在 Kotlin 1.5 中。

使用 Kotlin 1.6 我收到编译错误:

覆盖上的选择加入要求标记注释需要基本声明上的相同标记

但是基本声明在我无法更改的标准 API 中。 我怎样才能使这个编译(并像以前一样工作)?

0 投票
1 回答
61 浏览

kotlin - 我可以使用 Kotlin 合约来保证另一个属性的非无效性吗?

我有一个具有可为空属性的类description: String?,为了方便起见,我想公开一个fun hasDescription(): Boolean对说字符串进行空检查的类。

为了更方便,我希望使用合约,以便在检查后可以智能description转换为不可为空。StringhasDescription()

  1. 现在这可能吗(带有实验性合同和 Kotlin 1.5)?
  2. 当合约稳定时有可能吗?