java - 为什么 Any 的方法不是抽象的或原生的?
问题描述
爪哇
Object的方法被标记为native,所以很容易理解它们是在后台实现的
科特林
public open class Any {
public open operator fun equals(other: Any?): Boolean
public open fun hashCode(): Int
public open fun toString(): String
}
Any 的方法没有被标记为原生或抽象,所以下一个问题是:
何时以及如何生成 Any 的方法以及为什么我不能只是复制粘贴 Any 类并在没有错误的情况下编译?
解决方案
Any
的方法不会生成。编译器映射Any
到java.lang.Object
,它提供方法的实现作为 JDK 的一部分。
这些方法没有被标记为抽象,因为Any
不是抽象类。方法没有标为是native
因为 Kotlin 标准库类到 JDK 类的映射不是类独有的Any
,其他类似映射的方法也不是原生的。
推荐阅读
- tcl - Hexapod Tcl 旋转脚本
- tensorflow - 我可以了解一些关于在 Keras 中实现自定义激活功能的细节吗?
- visual-studio-code - 在哪里可以下载 Visual Studio 代码文档?
- postgresql - 使用 Spring Boot 开发微服务
- java - org.springframework.beans.factory.BeanCreationException:创建 ServletContexoller 中定义的名称为“sessionFactory”的 bean 时出错:
- python - 如何使用 youtube-dl 的 --add-header 选项?
- mysql - 本地计算机上 phpmyadmin 中的数据库导入问题
- python - 当有很多输出时使用哪个损失函数?
- flutter - Flutter json 解析失败,没有任何错误
- java - glfwSetCursorPos() 在 Windows 上不起作用