gpt4 book ai didi

java - Kotlin 如何推断 Java 方法参数的可空性?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:59:30 26 4
gpt4 key购买 nike

我正在尝试从 Kotlin 代码调用 Java 方法 org.springframework.data.mongodb.core.query.Update#set。此方法声明为

public Update set(String key, Object value)

没有关于参数可空性的附加注释或评论。事实上,它只是将 value 放入 HashMap 中,因此实际上 value 可能是 null

但是,Kotlin 编译器将 value 类型视为 Any(而不是预期的 Any!),并在传递 null< 时失败

Null can not be a value of a non-null type Any

使用 !! 传递可空值显然会导致 KotlinNullPointerException,强制转换 as Any 会抛出 TypeCastException

这种可空性推断背后的逻辑是什么?通过反射传递 null 参数实际上效果很好,但是有更自然的解决方案吗?

最佳答案

关于java - Kotlin 如何推断 Java 方法参数的可空性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58011705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com