Java
对象的方法被标记为原生的,因此很容易理解它们是在幕后实现的
Kotlin
public open class Any {
public open operator fun equals(other: Any?): Boolean
public open fun hashCode(): Int
public open fun toString(): String
}
Any 的方法没有被标记为 native 或 abstract,所以接下来的问题是:
Any 的方法何时以及如何生成,为什么我不能只复制粘贴 Any 类并编译而不会出错?
最佳答案
Any
的方法不会生成。编译器将 Any
映射到 java.lang.Object
,它提供方法的实现作为 JDK 的一部分。
方法没有被标记为抽象的,因为Any
不是抽象类。这些方法未标记为 native
,因为 Kotlin 标准库类到 JDK 类的映射不是 Any
类所独有的,以类似方式映射的其他方法也不是原生。
关于java - 为什么 Any 的方法不是抽象的或原生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330014/