问题标签 [kotlin-null-safety]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lambda - 为什么这个不可为空的 val 变成“可空的”?
所以我有一个简单的回调类:
现在我想实现一个处理错误的方法。可能有也可能没有callback
需要调用的。
这给我一个错误:
引用具有可空类型,
((Throwable) -> Unit)?
使用显式?.invoke()
进行类似函数的调用,而不是
它似乎期待的是
我不太明白为什么。不为空的事实callback
是否足以推导出必须有一个非空onError
函数?
雪上加霜,如果我写
然后它接受了,但不是在警告我我应该
删除多余的
.let
调用
eclipse - Kotlin 的 Eclipse 外部空注释
对于 Java 中的 null 安全性,Eclipse 具有 org.eclipse.jdt.annotations。
此外还有EEA、Eclipse 外部空注释。它们允许您为无法修改代码的库使用 @NonNull/@Nullable 进行注释。
现在,当使用 Kotlin 并与 Java 库进行互操作时,我如何告诉 Kotlin 方法的返回值是否为非 null?
我想为这样的库签名定义一次,而不是每次调用此 API 时。
是否有类似 EEA 的机制,或者我可以让 Kotlin 理解我已经拥有的现有 EEA 文件吗?
问候弗兰克
android - 如何在 Kotlin 中声明空数组?
我在 PHP 中有以下代码public static $bitValueTable = null;
,我想将其转换为 Kotlin。我的变量在第一步中是一个空数组,但我在程序运行后添加了一些值。我怎样才能转换?
kotlin - `Nothing` 可以用来做什么?
我特别要求不可为空的类型Nothing
。
我确实知道这Nothing?
允许我们,例如,过滤null
以使重载明确,但我正在努力思考Nothing
有用的实例。
Nothing?
可以只有一个值,null
。所以Nothing
可以完全没有价值。重点是什么?为什么不简单地使用Unit
?
android - Kotlin 安全调用 (?.) 实现
我可以用繁琐的方法解决它,所以如果您不发布解决方法而是记录解决方案,我将不胜感激。
我正在尝试将以下代码片段添加到onCreateView()
片段中,但是“感谢”安全调用(或我的代码设计)事情变得复杂了。在Kotlin 部分之后显示警告以在(相当于Java 中)之后TabLayoutMediator(activity
添加安全调用 ( ) ,这可能是.?.
activity
getActivity
null
尝试任何解决方案之前的原始代码片段
1)试图通过添加来解决
safe call
(失败)
现在添加安全调用违背了TabLayoutMediator
输入参数,我收到type mismatch Required:TabLayout Found:TabLayout?
警告TabLayoutMediator
。
2)尝试通过之前的空检查来解决
safe call
(失败)
添加空检查,但现在 Kotlin 给出了TabLayoutMediator(activity
部分警告Smart cast to 'FragmentActivity' is impossible, because 'activity' is a property that has open or custom gette
kotlin - Kotlin - 检查参数是否为空的通用方法
我正在使用Kotlin
并考虑编写通用方法来检查是否有任何传递的参数是not null
.
方法可以在if
语句中使用,而不是手动检查每个参数。如果参数不为空,那么编译器应该假设if
它们仍然是内部语句not null
。下面的例子:
这是“传统”方式:
这就是我想做的:
当然上面的代码不是编译(Type mismatch, Required: Foo, Found: Foo?
)。
有什么方法可以确保编译器foo
已经bar
检查过null
吗?我可以!!
在每个参数中使用,但这不是非常优雅的解决方案。也许一些建筑使用contract
?
使用手动检查时foo != null && bar != null
没有问题,因为自动smart cast
到Foo
和Bar
。
kotlin - Reactor 和 kotlin 的空安全性
根据这部分文档,Reactor 应该支持 null-safety: https ://projectreactor.io/docs/core/release/reference/#kotlin-null-safety
尽管如此,使用map
我可以轻松地跳过空值检查:
如本例所示,String?
分配给Mono<String>
. 在这种情况下收到编译器故障会很棒。它是反应堆中的错误还是从未实施过的东西?
我正在使用:反应堆 3.2.12
kotlin - 如何分解对象并将其简洁地添加到列表中?
如果我有一堂课,例如
是否有更类似于 Kotlin 的方式来实现以下目标?
kotlin - 我可以将检查 null 的时间更改为不同的方法吗?
在 Kotlin 中是否有更“Kotlin”的方式来执行以下操作?
我怀疑在 Kotlin 中检查null
withwhen
可以用不同的方式编写
kotlin - 检查空值后显示空值安全错误
我执行一个函数 ( listOf(matchUid, first_name, gender, matchBio, age).any { it == null }
) 检查传入的任何变量是否为null
:
即使它检查了这一点,first_name
并且gender
由于 null 安全性,编译器也有红色下划线。matchUid
没有红线,因为我在下面的行中明确检查了 null。
为什么我已经检查过编译器仍然给出空警告?