首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Kotlin到Java的原语转换

问从Kotlin到Java的原语转换
EN

Stack Overflow用户
提问于 2019-06-02 15:56:54
回答 2查看 618关注 0票数 2

当尝试调用接受类型:java.lang.Double?的java方法(在本例中为构造函数)时

示例(AuthRequestModel是一个Java模式):

代码语言:javascript
复制
AuthRequestModel(amount = 10.toDouble())

用错误解决:

型失配要求: Java.lang.Double?发现: Kotlin.Double

从Kotlin Double (或任何其他原语)转换为的正确方法是什么?

现在,我添加了一个如下所示的转换方法:

Imp:

代码语言:javascript
复制
fun Double.asJava(): java.lang.Double = this as java.lang.Double

用法:

代码语言:javascript
复制
  AuthRequestModel(amount = 10.toDouble().asJava())

但这是强制施放,我假设有一种自然的方法来达到同样的效果.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-02 17:56:14

如果AuthRequestModel是一个Java类,您将无法使用命名参数来调用它的构造函数。我猜AuthRequestModel是一个Kotlin类,翻译得很差。修正翻译,使其使用普通的Double或Double?。

票数 0
EN

Stack Overflow用户

发布于 2019-06-02 16:04:00

根据kotlinlang.org

Java的装箱基元类型映射为可空的Kotlin类型:

代码语言:javascript
复制
Java type              Kotlin type
java.lang.Byte         kotlin.Byte?
java.lang.Short        kotlin.Short?
java.lang.Integer      kotlin.Int?
java.lang.Long         kotlin.Long?
java.lang.Character    kotlin.Char?
java.lang.Float        kotlin.Float?
java.lang.Double       kotlin.Double?
java.lang.Boolean      kotlin.Boolean?

这意味着您可以直接转换为可空的kotlin.Double吗?并在本地使用您的java目标。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56416645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档