首页 > 解决方案 > 我可以知道何时从 Java 或 Kotlin 调用我的库吗?

问题描述

我正在为 Android 开发一个 Kotlin 库。我想为 Kotlin 和 Java 开发人员提供出色的开发人员体验,但是因为我没有无限的资源,所以我需要在它们之间进行优先级排序。

该库正在与我控制的服务器进行交互,因此我可以将元数据添加到网络调用中,这将帮助我了解用户的划分。
但是有没有办法知道我的库何时从 Java VS Kotlin 调用?

我在这个答案中看到可能有一种方法可以检查给定的类,但是作为库所有者,我认为如果不使用反射会增加一些运行时成本,我无法知道哪个类正在调用我自己的类。没有办法在运行时从 JVM 获取元数据,这将表明代码是否是从 Kotlin 编译的(即使以误报为代价,例如检查是否KAPT在任何时候使用过至少会报告一些 Kotlin用户?)

标签: javaandroidkotlinkotlin-interopkotlin-java-interop

解决方案


简短的回答:不。

当您的代码运行时,它在这两种情况下都以 Java 字节码编译。


推荐阅读