问题标签 [kotlinc]

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 回答
943 浏览

java - Does JVM use kotlinc for Kotlin?

I do have a little question about JVM and Kotlin. The JVM uses the Javac compiler to compile the Java code to bytecode. How does this work for Kotlin? Will the JVM use the Kotlinc compiler or will it still use the Javac compiler as Kotlin can be compiled to Java?

0 投票
1 回答
36 浏览

kotlin - 从 kotlinc -Xbuild-file 参数引用的文件的 XML 格式的文档

从 kotlinc-Xbuild-file参数引用的文件内容的 XML 格式的文档在哪里?

XML 看起来像:

对于喜欢删除问题的过分热心用户,请注意这个问题的答案不是主观的;文档存在,或者不存在。我不是要求推荐一本书,教程等,可能有很多。我正在寻找官方文档。

是的,我正在尝试使用所述 XML 文件(在 Gradle 构建中使用带有 kotlinc 的 JPMS 模块)来完成特定任务,但是,即使有人给我一个似乎可行的答案,我也无法验证它在不知道该 XML 格式的情况下是最优的(更不用说真正正确了)。如果我知道XML格式,我自己可以很容易地确定正确的用法,所以我详细说明我的确切用例是浪费大家的时间,删除一个非主观答案可以让我完成的问题也是浪费我的任务。

0 投票
0 回答
83 浏览

kotlin - kotlinc 等效于 javac 中的 --patch-module

是否kotlincjavac's的等效选项--patch-module

例如,-Xmodule-path=是from的kotlinc等效选项,但我还没有找到.--module-pathjavac--patch-module

0 投票
2 回答
240 浏览

kotlin - Kotlin 独立编译器手动安装

查看https://github.com/JetBrains/kotlin/releases/tag/v1.3.0,有一个通用的多平台 zip 文件(kotlin-compiler-1.3.0.zip)和一些特定于平台的文件(例如kotlin-compiler-1.3.0-release-windows-x64.zip)。查看 zip 文件,不同之处似乎在于特定于平台的安装包含一些本机可执行文件(例如 .dll 或 .so 文件)并使用其自己的预构建 JRE,而多平台版本似乎是纯 Java。

这是唯一的区别,还是特定于平台的安装包含一些超出纯 Java 版本的额外功能?

使用纯 Java 版本会更安全吗,因为我的 Java 1.8u192 版本晚于构建 Kotlin 1.3 的版本?

0 投票
5 回答
7583 浏览

kotlin - @JvmDefault 以及如何添加编译器选项

我需要default void在 Kotlin 接口中创建一个方法。我遇到了一个问题,提示说Usage of@JvmDefault只允许使用-Xjvm-defaultoption

我需要在哪里写这个Xjvm-default

0 投票
1 回答
271 浏览

gradle - 如何将依赖项添加到我的自定义 Gradle 插件?

NoClassDefFoundError在尝试向我的自定义 Gradle 插件添加依赖项时遇到问题,但我还没有找到解决它的方法。

添加到插件的依赖块

添加到插件的 DeclarationAttributeAltererExtension 实现

这是完整的堆栈跟踪:

完整的实现和测试用例位于https://github.com/henrik242/kotlin-really-allopen/tree/unable-to-add-dependencies的单独分支中

通过运行重新创建问题./gradlew clean :kotlin-really-allopen:build :kotlin-really-allopen:publishToMavenLocal :functional-test:build

0 投票
1 回答
158 浏览

kotlin - 在没有大括号的 Kotlin if 语句中,Apples goto-bug 是否可能?

想象一下在 Kotlin 中:

我一直在阅读使用大括号(请参阅 Apples goto fail)!

规则 1.3.a

大括号应始终围绕在 if、else、switch、while、do 和 for 语句之后的代码块(也称为复合语句);这些关键字后面的单个语句和空语句也应始终用大括号括起来。

Kotlin 编译器如何处理上述代码中缺少大括号的问题?我认为 Kotlin 可能足够聪明,可以避免失败?

0 投票
2 回答
519 浏览

java - Kotlin 编译器或 Java 反编译器的奇怪行为

这个问题是由我的好奇心驱使的,所以我希望得到一个完整的答案,而不是简单的“是”或“否”。

让我们考虑这段代码:

当我在 AndroidStudio 中使用“显示 Kotlin 字节码”工具,然后单击“反编译”按钮时,我看到了这个 java 代码(我删除了一些不相关的东西):

在这里我们可以看到一些奇怪的代码:

1.

Java 要求supercall 是构造函数主体中的第一条语句。


2.

this((Function2)null.INSTANCE);这对应于constructor() : this({ _, _ -> Unit }) 什么null.INSTANCE意思?为什么没有预期的匿名对象?


3.

方法上没有@Override注释onScrolledoverride用修饰符为方法添加注释是否太难了?但是存在@NonNull@Nullable注释。


4.

Boolean值被分配给int变量?为什么这条线出现在这里?这个变量没有用处。为什么它声明一个不会被使用的变量?


5.


6.

为什么不让它变得更简单呢?


7.

如果我们知道,为什么它会IllegalStateException转换?目的是什么?ThrowableIllegalStateException extends Throwable


这真的是在生产中执行的代码还是 Java Decompiler 无法弄清楚所有这些东西?

0 投票
1 回答
229 浏览

kotlin - 带有多个文件的 kotlinc -script

我有一个用于测试的 Kotlin 脚本。为了快速运行它,我使用kotlinc -script它来评估它,它会立即在控制台中打印我的结果。

现在,当脚本变得足够大时,我想将其拆分为不同的子模块/包。是否可以评估具有多个文件的脚本kotlinc

请注意,该设置仅用于测试目的,这就是我不想编译它的原因,以避免额外的步骤。想象一下,直接从控制台进行操作,并且您不想使用 Gradle 设置项目。

谢谢。

0 投票
0 回答
32 浏览

android-studio - 如何配置 Kotlin 字节码检查器?

我想在 AS 3.5 中配置 Kotlin 字节码检查器代码以使用旧版本的 Kotlin 编译器。可能吗?

目前我有一个 Kotlin 1.1 项目,我很想看看当 Kotlin 1.1 是新版本时某些功能的字节码是什么样子的。我的问题是 Kotlin 字节码检查器似乎总是根据最新版本的 Kotlin 编译器编译源代码。

我基本上是想重现这个实验的结果。

如果您无法将字节码检查器配置为使用旧版本的 kotlinc,是否有另一种方便的方法来重现实验结果?