问题标签 [notnull]

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

java - java @Nonnull 注解在一个返回 null 的方法中

我有一个从哈希图中获取某些东西的方法,一个简化的例子(这没有多大意义,但现在已经足够好了)是:

当给定键明显不存在条目时,此方法可以返回 null。问题是,我想用@NonNull(因为它在无数地方使用,我不喜欢 Intellij 向我发送关于生成 NPE 的检查警告的垃圾邮件,我不想关闭该检查,我也不想在我调用这个方法的任何地方检查返回的值是否不同于 null。这是因为我总是使用这个方法和一堆总是在地图中的键。所以由于程序逻辑,这个方法是必然会返回一个@NonNull值。

我很想用 注释它@NonNull,但谁知道有人可能会用某个地方定义的键以外的东西来调用它,实际上会导致 NullPointerException。你会怎么办?一个断言对我来说听起来很诱人。或者你会改变方法来抛出一个 RuntimException 吗?还是一个断言错误?

谢谢。

编辑:

这是实际的实现:

0 投票
1 回答
13233 浏览

sql-server - 什么是 PostgreSQL 和 SQL Server 中“位”数据类型的默认“长度/值”

问题

1 . PostgreSQL 中位数据类型的默认长度/值是多少?

2 . SQL Server 中位数据类型的默认长度/值是多少?

3 . PostgreSQL 中的默认列值(NULL/NOT NULL)是什么?

4 . SQL Server 中的默认列值(NULL/NOT NULL)是什么?

0 投票
3 回答
30709 浏览

java - 未注解的方法会覆盖使用@NotNull 注解的方法

我正在实现一个自定义数据结构,它为我提供了一些集合的属性和列表的其他属性。不过,对于大多数已实现的方法,我在 Java 7 上的 IntelliJ IDEA 中收到了这个奇怪的警告:

未注解的方法会覆盖使用@NotNull 注解的方法

编辑:下面的代码与问题无关,而是原始问题的一部分。由于 IntelliJ 中存在错误,因此出现此警告。请参阅(希望)解决您的问题的答案。


我找不到任何相关的东西,我不确定我是否真的错过了某种检查,但我已经查看了 ArrayList 和 List 接口的源代码,但看不到什么这个警告实际上是关于。它在引用列表字段的每个实现的方法上。这是我制作的课程的片段:

编辑:我在类中有这些额外的构造函数:

0 投票
1 回答
59 浏览

java - 我想检查一个对象的所有值集是否为空

在这种情况下,只有 2 个值,但我可能需要在 obj1 上设置 30 个值。问题是当我初始化 obj1 时,它会将 null 分配给它的所有值,当我检查 obj1 != null 时,它会将 obj1 读取为非 null,因为默认情况下值被分配给他们。我需要一些可以将 obj1 值设置为 null 而不是它的引用而是它的值的东西,或者可以检查 obj1 的所有值是否全部为 null 并且如果任何值不为 null 的东西,可以在 obj2 上设置。提前致谢

0 投票
2 回答
9048 浏览

java - NotNull 不工作,Column(nullable = false) 工作

我有一个 Spring 实体,其字段用 javax.validation.constraints 中的 @NotNull 注释

问题是,如果为 name 字段设置 null 值,它会存储在数据库中。但是,如果我按如下方式更改课程,则会引发我希望收到的异常:

有没有一种方法可以避免指定 nullable=false,但让 @NotNull 表现得如我所愿?是否有任何依赖于标准 Java 注释的 nullable=false 替代方案,例如一些 Hibernate 配置?

这是我的弹簧配置:

应用程序上下文

应用程序上下文持久性

applicationContext-jpa

由于我使用的是存储库,因此我还报告了相应的实体存储库

0 投票
1 回答
1402 浏览

crystal-reports - 水晶报表条件显示

我在报告中有 3 个字段(例如 FIELDA、FIELDB、FIELDC)并且想要实现以下伪代码:

还请指定我在哪里输入代码。

0 投票
5 回答
107682 浏览

sql - 更改列默认值

我知道您可以像这样更改现有列的默认值:

但据此,的查询应该有效:

所以在这里我试图让我的列 Not Null 并设置默认值。但是在 CONSTRAINT 附近出现 Inoorect 语法错误。我错过了什么吗?

0 投票
3 回答
7582 浏览

sql - oracle sql - 仅当该列中没有空值时选择

我正在查看一个包含几个独特清单项目的清单。我只想选择在清单日期字段中没有空值的人的记录(ID、姓名等)。

目前,它正在选择那些至少有一个非空清单日期的人。这意味着它仍在为某些清单项目选择日期为空的人的记录。

如何告诉它选择哪里 CK.SARC_RECEIVE_DATE = (所有清单项 receive_dates 必须是非空值)?

简化示例:

0 投票
1 回答
1692 浏览

sql - Oracle SQL SELECT 带有“NOT NULL”约束的未填充记录

为了检索我需要的数据,我必须选择没有数据的记录。有些行未填充(?)。

许多这些“未填充”的行都设置有 Not Null 约束。这让事情变得很困难!我不能简单地搜索 NULL 行,因为它们不是 NULL。

我已经能够使用几种方法选择或排除未填充的行。这些方法似乎随机工作或不工作。

示例:选择或排除 st.sart_code 或 st.sart_hold 或 st.sart_status 或 st.sart_date 未填充的记录。

方法 1 - 选择具有不具有值 EVEA 的行的记录 - st.sart_code 可以包含一个 sp.sprite_id 的多个值。这是一个项目清单。我正在寻找清单中没有 EVEA 的记录

具有 Not Null 约束的 Varchar2 类型

EVEA 不在清单中

方法 2 - 选择具有不具有值 A2 的行的记录 - st.sart_hold 可以包含一个 sp.sprite_id 的多个值。st.sart_hold 可能是空白/未填充(记录没有保留)或包含几个不同的保留。这些值是帐户保留类型。我正在寻找没有特定“A2”保留的记录。

具有 Not Null 约束的 Varchar2 类型

编辑我刚刚意识到这只有在至少已经有一个持有的情况下才有效。如果此人没有保留,此脚本将不会选择记录(即使此人也没有 A2 保留)。

没有 A2 保留

方法 3 - 选择行中没有 st.sart_status 值的记录——st.sart_status 只能包含 3 个可能值中的 1 个,或者一个 sp.sprite_id 没有值。这些值是文件状态。我正在寻找没有状态的记录

具有 Not Null 约束的 Varchar2 类型

没有状态

方法 4 - 选择在 st.sart_date 中不缺少任何值的行的记录(列表中的所有日期字段都已填充)- st.sart_date 可以包含日期,也可以为一个 sp.sprite_id 为空白/未填充。该值是清单项目的接收日期。我排除了没有任何清单项目日期的任何记录(可能有许多项目具有相应的日期)。

具有 Not Null 约束的日期类型

这有点不同,所以我再次包括第一部分。

为相应的清单项目填充所有接收日期

我的问题:我很难找到使用 Not Null 约束字段的方法。

编辑:当“非空”约束字段未填充时,我如何查看它的内容?

  1. 为什么在查找未填充的字段时,上述方法并不总是有效?某些方法是否仅适用于某些数据类型(varchar2、数字、日期)?还是与我使用的 JOIN 类型有关?还有什么?

  2. 还有其他方法可以请人指导我吗?任何指导将不胜感激!

  3. “选择存在 [ColumnName DataType() NOT NULL] 的未填充字段的记录”的正确术语是什么?如果我知道我要问的术语,我可以搜索它。

注意我的脚本通常比上面的例子更复杂。我通常至少有 3 个连接和许多 WHERE 子句。

如果这个问题涉及太多,请告诉我!我刚来这地方。:-)

0 投票
1 回答
3014 浏览

sql - 选择除 null 或 NVL 之外的所有列全部为 null

有什么方法可以选择字段不为空的记录中的所有列或将空字段NVL到''?我在做甲骨文

像这样的东西

或者像这样