【发布时间】:2017-06-28 06:39:03
【问题描述】:
上下文
Kotlin 的kotlin.String 类型是currently defined as follows (1.1.2):
public class String : Comparable<String>, CharSequence {
companion object {}
// Operator and override function definitions.
}
在kotlin.String 上定义的一些扩展将接收实例转换为java.lang.String 类型以转发方法调用。 For example (1.1.2):
@kotlin.internal.InlineOnly
public inline fun String.toLowerCase(): String = (this as java.lang.String).toLowerCase()
然而,kotlin.String 类型定义中的任何内容都没有让我清楚地知道,这个演员阵容一定会成功。
问题
- 是否有任何方法可以轻松确定任何给定的 Kotlin 类型是否以这种方式映射到相应的 Java 类型?
- 这种转换实际发生在哪里? (如果可能,寻找相关源代码的链接。)
【问题讨论】:
-
Where does this conversion actually happen?这是什么意思? Kotlin 的String基本上是Java 的java.lang.String的类型别名 -
@Mibac 你怎么知道的?正如我在上面展示的那样,从源代码中并不明显,因此“别名”必须在某处发生。我正在寻找 where 部分:)
-
我认为让字符串像 Java 字符串一样工作涉及到一些编译器魔法。不过我现在找不到它的文档。