问题标签 [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.

0 投票
1 回答
712 浏览

kotlin - Kotlin 零安全性?

让我们有一个函数foo和一个类Bar

现在,让我们来看看代码:

问题是这段代码无法编译。由于它需要Bar(x!!, y!!).

但是,当我用其内容替换该功能时,!!就不需要了。

为什么无法从函数中解决空检查.isNotEmpty()

0 投票
5 回答
4739 浏览

null - kotlin function returning null

I am trying some android development with kotlin. In my case I want to overwrite: ContentProvider where I have to overwrite the function "query". "query" returns "Cursor" type. However, when I create the Cursor instance in the function with database.query I get back a "Cursor?" type. So I can only return Cursor if it is not null, but what do I do if it is null?

This is what it basically looks like:

Any Ideas how to solve that?

Thanks, Sven

UPDATE First of all thanks for the answers.

Annotation seems not to work in my case as I can only access the compiled code and I dont get the option to annotate the source. Maybe I am missing something here.

Implementing my own cursor Seems like overkill especially if I have to do it every time that problem occurs.

So it seems my only option is to return cursor!! But I dont know how exactly to do it. My code is a bit more complicated than in my example, I missed a when statement. This is an updated version:

Do I really have to implement my own cursor and clutter my code with useless "throw UnsupportedExceptions"?

0 投票
9 回答
46100 浏览

kotlin - 在 Kotlin 中处理可为空或空列表的惯用方式

假设我有一个activitiestype变量List<Any>?。如果列表不为空且不为空,我想做点什么,否则我想做点别的。我想出了以下解决方案:

在 Kotlin 中是否有更惯用的方法来做到这一点?

0 投票
2 回答
1833 浏览

kotlin - 空检查后Kotlin“可空接收器上的不安全调用”编译错误

这是错误的屏幕截图:错误截图

我正在使用 Intellij v14.0.1 + Kotlin 插件 v0.9.206。我的理解是,在空检查之后,编译器不应该向我显示错误。我错了吗?

0 投票
3 回答
109577 浏览

kotlin - What is the Kotlin double-bang (!!) operator?

I'm converting Java to Kotlin with Android Studio. I get double bang after the instance variable. What is the double bang and more importantly where is this documented?

0 投票
3 回答
5774 浏览

android - Kotlin - lateinit VS 任何?=空

在 Kotlin 中,似乎有两种方法可以在对象内部声明一个变量,该变量可以为 null 并在对象创建后实例化。

或者

如果我们可以让 var 可以为空并稍后分配它,我对为什么需要 lateinit 关键字感到困惑。每种方法的优缺点是什么,每种方法应该在什么情况下使用?

0 投票
1 回答
2662 浏览

reflection - kotlin 反射检查可空类型

如何测试 KType 变量是否包含可为空的 kotlin 类型的值(eG Int?)?

我有

来自 a 的变量KProperty<*>.returnType,我需要检测它是否等于某些 kotlin 类型(Int、Long 等)。这适用于:

但这仅适用于不可为空的类型,因此第一个分支与 Int 不匹配?但是我还无法弄清楚如何检测类型是 Int?除了明显但不是很好

0 投票
5 回答
134175 浏览

kotlin - 在 Kotlin 中进行空检查的最佳方法?

我应该使用双倍=还是三倍=

或者

同样对于“不等于”:

或者

0 投票
1 回答
2022 浏览

kotlin - 使用 Map (Kotlin) 时出现空指针异常

我有以下课程:

类条目看起来像这样:

主要的:

当我运行程序并尝试使用“定义”功能时,我收到以下错误:

我认为这个问题与我如何创建一个新的 symbolTable 类有关,但是看到 Kotlin 没有“新”,我不知道如何避免空指针异常。

0 投票
3 回答
973 浏览

java - 如何在 Android Activity 上使用 Kotlin 扩展函数正确进行空值检查

我是 Kotlin 的新手,并试图将我们现有代码库中的众多 Android Util 方法之一转换为 Kotlin 扩展函数。

这是 Kotlin 代码:

这意味着相当于这个Java方法:

但是,只要is ,我仍然NPEs会输入 Kotlin 代码。关于我要去哪里错的任何想法?Activitynull