java中@NotBlank限制屬性不能為空
在實體類的對應(yīng)屬性上添加 @NotBlank 注解,可以實現(xiàn)對空置的限制。除了 @NotBlank 外,還有 @NotNull 和 @NotEmpty ,它們的區(qū)別如下所示:
1.String name = null; @NotNull: false @NotEmpty:false @NotBlank:false 2.String name = ""; @NotNull:true @NotEmpty: false @NotBlank: false 3.String name = " "; @NotNull: true @NotEmpty: true @NotBlank: false 4.String name = "Great answer!"; @NotNull: true @NotEmpty:true @NotBlank:true
需要注意的是 @NotNull 一般作用在 Integer 類型上,其還可以配合 @size、@Max、@Min 對字段的數(shù)值大小進行控制。而 @NotEmpty 表示不能為空,且長度必須大于 0 ,一般用在集合類或數(shù)組上。 @NotBlank 只能作用在 String 類型上,并且調(diào)用 trim() 后,長度必須大于 0 。
同時,使用 @NotBlank 等注解時,一定要和 @valid 一起使用,不然@NotBlank不起作用,如:
@PostMapping("/save") @ApiOperation(value = "新增", notes = "傳入supplementaryMaterial") public ActionResult save(@Valid @RequestBody SupplementaryMaterial supplementaryMaterial) { return new ActionResult().status(supplementaryMaterialService.save(supplementaryMaterial)); }
@NotEmpty、@NotBlank、@NotNull三種注解的區(qū)別
1. @NotEmpty
@NotEmpty
注解用于驗證一個字符串、集合或數(shù)組是否為空。它檢查目標(biāo)對象是否為 null,并且長度是否為零。換句話說,被 @NotEmpty
注解標(biāo)注的字段必須至少包含一個非空字符、元素或項。
public class User { @NotEmpty private String username; // Getter and Setter }
在上面的例子中,username
字段被標(biāo)注為 @NotEmpty
,這意味著在驗證時,username
必須既不為 null,也不為空字符串。
2. @NotBlank
@NotBlank
注解也用于驗證字符串是否為空,但它比 @NotEmpty
更嚴(yán)格。它會去除字符串兩端的空格,并驗證處理后的字符串是否為空。因此,@NotBlank
只適用于字符串類型的字段。
public class Product { @NotBlank private String productName; // Getter and Setter }
在上述示例中,productName
字段被標(biāo)注為 @NotBlank
,這要求字段既不為 null,也不為空字符串,且去除兩端空格后也不能為空。
3. @NotNull
相對于前兩者,@NotNull
注解更加簡單,它只檢查目標(biāo)字段是否為 null。這意味著它適用于所有類型的字段,包括字符串、對象、基本數(shù)據(jù)類型等。
public class Order { @NotNull private Long orderId; // Getter and Setter }
在上述代碼中,orderId
字段被標(biāo)注為 @NotNull
,這表示在處理時,orderId
不能為 null。
區(qū)別總結(jié)
@NotEmpty
驗證字段不為 null,且長度不為零。適用于字符串、集合和數(shù)組。@NotBlank
驗證字段不為 null,長度不為零,且去除兩端空格后也不為空。僅適用于字符串。@NotNull
驗證字段不為 null。適用于所有類型的字段。
到此這篇關(guān)于java中@NotBlank限制屬性不能為空的文章就介紹到這了,更多相關(guān)java @NotBlank屬性不能為空內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java postgresql數(shù)組字段類型處理方法詳解
這篇文章主要介紹了Java postgresql數(shù)組字段類型處理方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10利用Java實現(xiàn)解析網(wǎng)頁中的內(nèi)容
這篇文章主要為大家詳細介紹了如何利用Java語言做一個解析指定網(wǎng)址的網(wǎng)頁內(nèi)容小應(yīng)用,文中的實現(xiàn)步驟講解詳細,感興趣的可以嘗試下2022-10-10Spring Cloud Gateway實現(xiàn)灰度發(fā)布方案
灰度發(fā)布是在微服務(wù)中的表現(xiàn)為同一服務(wù)同時上線不同版本,讓一部分用戶使用新版本來驗證新特性,如果驗證沒有問題,則將所有用戶都遷移到新版本上,本文就來介紹一下如何實現(xiàn),感興趣的可以了解一下2023-12-12