问题标签 [non-nullable]

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 回答
298 浏览

java - Getting 'mismatching null constraints' error when implementing Map.entrySet (Java8, Eclipse)

I get the error...

...when implementing a Map and overriding Map.entrySet like this:

The package org.abego.util defines the default nullness to be @NonNull:

The only way I found to get rid of the error was to 'remove the default nullness annotation' for entrySet using an @NonNullByDefault({}) annotation:

While this does work I am wondering if this is the correct way to fix the error.

(I am using Eclipse 4.5 (Mars) and jdk1.8.0_60.)

0 投票
0 回答
523 浏览

java - NonNull 注释 - 非法重新定义参数 (Eclipse)

我正在尝试使用 Eclipse NonNull 注释,但是我无法理解下面描述的行为。我不明白 Eclipse 在抱怨什么......

Compiles/Eclipse 不会抱怨任何事情:

Eclipse 抱怨“非法重新定义参数 nonNullString,从 NonNull1 继承的方法不限制此参数”但编译/运行良好:

在此处输入图像描述

环境:使用 Jdk8 的 Eclipse 4.4.1(编译器合规级别:1.8) 在此处输入图像描述

0 投票
1 回答
99 浏览

database-design - 如何让 Microsoft SQL Management Studio 2014 默认列在创建或设计时不可为空?

我是 Visual Studio Management Studio 2014 的新手。

在我的数据库中,我的绝大多数数据是一个 Id、一个位、一个 nvarchar(x) 或奇怪的必要时间戳。大多数列都是 NULLABLE,除了结束日期。

我并不是说 NULLABLE 没有用处,因为我确实有一些可选的二进制图像和结束日期。只是我的 99%+ 的列不应该为空。

但是,对于我创建的所有这些 NOT NULL 列,我必须取消选中 NULLABLE 标志。有没有办法将管理 Studio 中的默认值更改为 NOT NULL?

我也很好奇为什么微软选择 Nullable 作为默认值,这对我来说似乎有点奇怪。

到目前为止,它可以为我节省大约 500 次点击,我期待更多。

感谢

罗宾

0 投票
3 回答
13541 浏览

java - 在 Android Studio 中使用 @NonNull 注解的正确方法

我想@NonNull在 Android 中使用注释,但我想不出正确的方法。我建议你这个例子:

所以当我打电话doStuff(null)给IDE时会给我一个警告。问题是我不能依赖这个注释,因为就像这个问题指出的那样,它们不会传播很远。所以我想对我的方法进行空检查,如下所示:

但是,假设 IDEs!=null会警告我这s==null总是错误的。我想知道这样做的最佳方法是什么。

我个人认为应该有一个这样的注释@ShouldntBeNull检查并警告 null 没有传递给它,但在检查值为 null 时不会抱怨。

0 投票
1 回答
2718 浏览

java - 模拟一个类将空值分配给@NonNull 字段(Android)

我正在使用 Android SDK 和 junit4 + Mockito 进行单元测试。假设我的应用中有这样的课程:

而且我还有一个使用 Mockito 的单元测试,如下所示:

这个测试实际上在 "container.add("test_value");" 行失败了 因为mock(Container.class)创建了一个类,其中values字段实际上设置为 null,所以addValue()方法中的values.add( value)会抛出 NPE。我可以在addValue()中添加一个空检查来解决这个问题,但这似乎很荒谬,因为值已经被声明为非空。

有什么方法可以让 Mockito 尊重 @NonNull 注释并正确初始化该字段?

0 投票
1 回答
2321 浏览

objective-c - 我们能否确保`+ (nonnull instancetype)sharedInstance;` 的可空性?

这是一个关于如何优雅地规避initin NSObjectclass 的可空性的问题。

所以这是一个经典的objective-c实现:

但现在我想将其声明为nonnull,如果可能的话:

不幸的是,init返回一个nullable instancetype值。我应该NSAssert在调用后添加一个或其他内容init吗?

我注意到有些人甚至将价值观记录nonnull为现实nullable。那有意义吗?

我是否应该大胆地在NS_ASSUME_NONNULL_BEGIN所有地方简单地添加,而不真正确保值是nonnull

0 投票
1 回答
59 浏览

objective-c - 目标 C 到 Swift 非空转换

我从 Objective C 转换了一些代码。

Swift 转换器产生

然而,非空值不被 swift 识别。这也应该是一个覆盖函数。

我相信它应该沿着

但它带来了一个错误。Method 不会覆盖其超类中的任何 Method。我不应该需要删除覆盖,如果我这样做,它会与 Objective C 导入库中的原始文件冲突。

你能帮忙吗?

0 投票
4 回答
72369 浏览

nullable - 在 Kotlin 中,处理可空值、引用或转换它们的惯用方式是什么

如果我有一个可为空的类型Xyz?,我想引用它或将其转换为不可为空的类型Xyz。在 Kotlin 中这样做的惯用方式是什么?

例如,这段代码是错误的:

但是如果我先检查 null 它是允许的,为什么?

假设我确定它确实是 never ,我如何在null不需要检查的情况下更改或处理一个值?例如,在这里我从一个我可以保证存在的映射中检索一个值,并且结果is not 。但我有一个错误:ifnullget()null

该方法get()认为该项目可能丢失并返回 type Int?。因此,强制值的类型不可为空的最佳方法是什么?

注意: 这个问题是作者有意编写和回答的(Self-Answered Questions),因此常见的 Kotlin 主题的惯用答案出现在 SO 中。还要澄清一些为 Kotlin 的 alpha 编写的非常古老的答案,这些答案对于当今的 Kotlin 并不准确。

0 投票
2 回答
555 浏览

objective-c - 使用非空时没有警告?

使用这样的代码:

我不应该得到编译器警告吗?我没有收到任何警告,这似乎使整个可空性的东西看起来毫无用处?

0 投票
2 回答
52 浏览

c# - 无法将不可为空的类型转换问题vb.net to c#

我复制了一段用 VB.Net 编写的遗留代码,当转换为 C# 时,它产生了以下内容:

它抛出一个错误,指出它无法转换,因为它是不可为空的类型。SSAC 的代码如下:

在 VB.Net 中,这个函数如下:

而 SSAC 类如下:

如何更新 C# 代码以修复此错误?