成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

@NotNull, @NotBlank,@NotEmpty,你用對了嗎?

開發
本文,我們詳細地分析了@NotNull、@NotEmpty 和 @NotBlank 三個注解以及它們之間地對比。

@NotNull、@NotEmpty 和 @NotBlank 是 Java Bean Validation(如 Hibernate Validator)中常用的注解,用于校驗字段的有效性。它們之間有不同的適用場景和約束條件。這篇文章,我們將詳細解釋它們的區別及使用場景。

1. @NotNull

@NotNull的作用是僅確保字段不為 null。因此,對于字符串來說,允許為空字符串 ("");對于集合等,也只檢查是否為 null,不檢查是否為空集合。

@NotNull適用于任何類型的對象(如字符串、集合、自定義對象等)。

如下示例,展示了@NotNull注解的使用:

public class User {
    @NotNull(message = "用戶名不能為空")
    private String username;
}

2. @NotEmpty

@NotEmpty 的作用是確保字段不為 null,且不為空。因此,對于字符串來說,長度必須大于 0,""(空字符串)被認為是無效的;對于集合等,大小必須大于 0。

@NotEmpty 可以適用于以下幾種類型:

  • String
  • Collection(如 List, Set)
  • Map
  • Array

如下示例,展示了@NotEmpty注解的使用::

public class User {
    @NotEmpty(message = "用戶名不能為空")
    private String username;

    @NotEmpty(message = "角色列表不能為空")
    private List<String> roles;
}

3. @NotBlank

@NotBlank的作用是確保字符串不為 null,且.trim()后長度大于 0(即不僅不為空,還至少包含一個非空白字、制表符等)。

@NotBlank僅適用于 String 類型。

如下示例,展示了@NotBlank注解的使用:

public class User {
    @NotBlank(message = "密碼不能為空")
    private String password;
}

4. 三者對比

下面通過一張圖表,對三者進行詳細的對比:

注解

適用類型

校驗條件

@NotNull

任意引用類型

對象不為 null

@NotEmpty

String,Collection,Map,Array

對象不為 null,且長度或大小大于 0

@NotBlank

String

字符串不為 null,且.trim()后長度大于 0

5. 使用場景

  • @NotNull:當只需要確保某個字段被賦值(不關心內容)時。例如,用戶的ID字段在數據庫中不能為空。
  • @NotEmpty:當需要確保某個集合或字符串不僅被賦值,而且包含至少一個元素或字符時。例如,用戶注冊時需要至少有一個角色。
  • @NotBlank:當需要確保字符串不僅被賦值,而且包含實際的非空白字符時。例如,用戶注冊時的密碼字段不能只是空格。

6. 示例代碼

下面我們通過一個示例同時演示 3個注解的使用:

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

public class User {

    @NotNull(message = "用戶ID不能為空")
    private Long id;

    @NotEmpty(message = "用戶名不能為空")
    private String username;

    @NotBlank(message = "密碼不能為空且不能全為空白")
    private String password;

    @NotEmpty(message = "角色列表不能為空")
    private List<String> roles;

    // Getters and Setters
}

在上述示例中:

  • id 只需要不為 null。
  • username 需要不為 null 且不為空字符串。
  • password 需要不為 null,不為空字符串,并且至少包含一個非空白字符。
  • roles 需要不為 null,且至少包含一個角色。

7. 總結

本文,我們詳細地分析了三個注解以及它們之間地對比。@NotNull僅校驗對象不為null,適用于所有引用類型;@NotEmpty確保集合、數組或字符串不為null且有長度;@NotBlank專用于字符串,要求不為null、不為空且包含非空白字符。根據字段類型和校驗需求選擇合適的注解,以確保數據的完整性和有效性。

通過合理使用這些注解,可以確保數據的完整性和有效性,減少潛在的運行時錯誤。

責任編輯:趙寧寧 來源: 猿java
相關推薦

2024-09-18 10:08:37

2022-05-09 07:27:50

ThreadLocaJava

2022-01-12 18:35:54

MongoDB數據查詢

2025-06-25 02:00:00

2017-10-10 15:30:20

JavaScript

2017-11-09 13:56:46

數據庫MongoDB水平擴展

2020-09-18 06:39:18

hashMap循環數據

2024-12-10 13:00:00

C++引用

2023-11-29 07:38:33

JavaScript異步處理

2018-07-01 08:34:09

緩存數據服務

2024-02-23 09:36:57

C#工具并行處理

2019-05-28 11:52:43

可視化圖表數據

2015-01-26 10:55:56

云服務器PowerEdge C

2019-12-26 14:07:19

隨機數偽隨機多線程

2019-09-10 10:25:47

數據庫管理工具Valentina S

2011-07-15 11:15:29

上網行為管理

2020-08-04 08:37:23

Kafka分區數

2018-07-04 06:26:00

無線路由器網絡WiFi

2018-01-25 16:49:08

開源容器云編排工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线一区二区 | 色综合激情 | 午夜在线 | 免费观看日韩精品 | 日本淫视频 | 日韩一级免费观看 | 欧美日一区 | 国产69久久精品成人看动漫 | 人人干人人爽 | 日韩精品一区二区三区中文字幕 | 国产成人99久久亚洲综合精品 | 国产精品伦一区二区三级视频 | 婷婷综合激情 | av中文字幕在线观看 | 久久亚洲一区 | 精品欧美一区二区精品久久久 | 欧洲精品在线观看 | 久久精品色视频 | 精品久久久久一区二区国产 | 久久伊人精品 | 成人在线不卡 | 国产激情91久久精品导航 | 91视视频在线观看入口直接观看 | 亚洲成人av一区二区 | 国产婷婷在线视频 | 日韩在线三级 | 断背山在线观看 | 日韩精品一区二区三区四区视频 | 欧美网址在线观看 | 可以免费看的毛片 | h视频在线观看免费 | 午夜影院视频在线观看 | 国产男人的天堂 | 国产在线播放一区二区三区 | 国产午夜精品久久久久 | 国产免费观看一级国产 | 国产日韩欧美一区二区 | 午夜成人在线视频 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 久久精品视频9 | 一级片在线观看 |