kotlin - BigInteger 作为 kotlin.Number
问题描述
在 Kotlin 中,BigInteger
来自包 java.math。那么我怎么能做到这一点:
val x: Number = BigInteger.ONE
在上面的陈述中,Number
iskotlin.Number
和我看不到 that 和 之间有任何关系java.math.BigInteger
。
相反,为什么以下是编译时错误?
val x: java.lang.Number = BigInteger.ONE
解决方案
正如Java interop 上的 Kotlin 文档所述:
Kotlin 专门处理一些 Java 类型。此类类型不是“按原样”从 Java 加载的,而是映射到相应的 Kotlin 类型。映射仅在编译时很重要,运行时表示保持不变。
java.lang.Number
类根本不应该在 Kotlin 中使用(与所有其他映射类型一样)。应该使用它的映射类型(kotlin.Number
在这种情况下)
推荐阅读
- skia - SkiaSharp 支持 PNG 文件的颜色量化
- javascript - 在路由器路由上反应无限循环
- java - android应用程序关闭时如何保持最后一种语言?
- python - Tkinter 如何加载具有透明背景的 png 图像?
- opencv - 使用虚拟环境安装 OpenCV (Ubuntu 16)
- vba - 如何使用VBA总结excel中的行
- node.js - Azure Function Runtime 版本:2.0.11888.0(测试版)无法连接到 cosmosDB
- windows - Windows Apache SSL 配置未加载页面
- java - 不同任务类型的锁存器
- jquery - 读取 DOM 中的所有类名,读取这些类的样式值并将它们内联添加到元素中?