当尝试调用接受类型:java.lang.Double?的java方法(在本例中为构造函数)时
示例(AuthRequestModel是一个Java模式):
AuthRequestModel(amount = 10.toDouble())用错误解决:
型失配要求: Java.lang.Double?发现: Kotlin.Double
从Kotlin Double (或任何其他原语)转换为的正确方法是什么?
现在,我添加了一个如下所示的转换方法:
Imp:
fun Double.asJava(): java.lang.Double = this as java.lang.Double用法:
AuthRequestModel(amount = 10.toDouble().asJava())但这是强制施放,我假设有一种自然的方法来达到同样的效果.
发布于 2019-06-02 17:56:14
如果AuthRequestModel是一个Java类,您将无法使用命名参数来调用它的构造函数。我猜AuthRequestModel是一个Kotlin类,翻译得很差。修正翻译,使其使用普通的Double或Double?。
发布于 2019-06-02 16:04:00
Java的装箱基元类型映射为可空的Kotlin类型:
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目标。
https://stackoverflow.com/questions/56416645
复制相似问题