@NotNull春、@NotEmptyと@NotBlankその違いは何ですか?

抜粋します。https://www.cnblogs.com/Terry-Wu/p/8134732.html


 

例:

文字列名= NULL; 
@NotNull:偽
@NotEmpty:偽
@NotBlank:偽の

文字列名= ""; 
@NotNull:真
@NotEmpty:偽
@NotBlank:偽の

文字列名= "「; 
@NotNull:真
@NotEmpty:真
@NotBlank:偽の

文字列名=; "偉大な答え!" 
@NotNull:真
@NotEmpty:真
@NotBlank:真

  


 

3つの違いの説明

@NotNull://のCharSequence、コレクション、マップArrayオブジェクトとnullにすることはできませんが、空のセット(サイズ= 0)であってもよいです。  
@NotEmpty://のCharSequence、コレクション、地図やArrayオブジェクトがゼロより大きくヌルとサイズ関連のオブジェクトにすることはできません。  
@NotBlank://文字列がnullでなく、空白文字の両端後の長さ削除(トリミング長)が0よりも大きくなります。

  


(でバージョン4.1で)定義された注釈:

1、NOTNULL @:

これは次のように定義されます。
@Constraint(validatedBy = {NotNullValidator.class})
このクラスは、のisValidがそのように定義されたメソッドがあります。
パブリックブールのisValid(Objectオブジェクト、ConstraintValidatorContext constraintValidatorContext){   
 リターンオブジェクト= NULL!。    
}
オブジェクトは他が保証されない、ライン上のnullではありません。

 

2、NotEmpty @:

これは次のように定義されます。
@NotNull     
@size(MIN = 1)    

也就是说,@NotEmpty除了@NotNull之外还需要保证@Size(min=1),这也是一个注解,这里规定最小长度等于1,也就是类似于集合非空。

  

3、NotBlank @:

@NotNull     
@Constraint(validatedBy = {NotBlankValidator.class})   

同様に、@NotNullに加えて、クラスが定義され、クラスは、isValidメソッドを有します。

もし(のCharSequence == NULL){//好奇心の    
  リターンはtrue。     
}      
。。charSequence.toString()を返す(トリム)の長さ()> 0。

  

オブジェクトがnull文字列の場合ときの方法が、唯一の場合、それはゼロの偽のトリミング長さを返すとき興味深いことに、それはtrueを返します。文字列がnullのときの方法ですが、また@NotBlank以来@NotNullが含まれているので、@NotBlank請求列がnullでない場合でも、trueを返します。

  


 

 

 

  

おすすめ

転載: www.cnblogs.com/xinruyi/p/11257663.html