@NotNull和@NonNull区别和使⽤
@NotNull使⽤在Bean的字段注解中。它是 JSR303(Bean的校验框架)的注解,在controller的⽅法中验证时(运⾏时检查⼀个属性是否为空)使⽤,如果不合法(为空),注解中的提⽰信息会保存在result中。
@NonNull 在⽅法或构造函数的参数上使⽤,⽣成⼀个空值检查语句。⽤于指明所修饰的参数,字段或⽅法的值不可以为null。它是JSR
305(缺陷检查框架)的注解,是告诉编译器这个域不可能为空,当代码检查(静态检查)有空值时会给出⼀个风险警告。运⾏时不报任何警告,根据实际值得情况运⾏时可能出现空指针异常。 ⽬前这个注解只有IDEA⽀持。实际好多静态扫描⼯具中有此注解符号
例如:
public class User implements Serializable {
//主键
@NotNull(message = "primary is not null",groups = {GroupInterface1.class})
private Long id;
@Pattern(regexp = "[0123456789]",groups = {GroupInterface1.class,GroupInterface2.class},message = "hava a error Date")
private Long maxDiscountAmount;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@Future(message = "expireTime is not less than now",groups = {GroupInterface1.class,GroupInterface2.class})
@NotNull(message = "expireTime is not null",groups = {GroupInterface1.class,GroupInterface2.class})
private Date expireTime;
}
import java.util.Date;
import straints.DecimalMax;
import straints.DecimalMin;
import straints.Email;
import straints.Future;
import straints.Max;
import straints.Min;
import straints.NotNull;
import straints.Size;
import org.straints.Range;
import org.springframework.format.annotation.DateTimeFormat;
/**** imports ****/
validation框架
public class ValidatorPojo {
// ⾮空判断
@NotNull(message = "id不能为空")
private Long id;
@Future(message = "需要⼀个将来⽇期") // 只能是将来的⽇期
// @Past //只能去过去的⽇期
@DateTimeFormat(pattern = "yyyy-MM-dd") // ⽇期格式化转换
@NotNull // 不能为空
private Date date;
@NotNull // 不能为空
@DecimalMin(value = "0.1") // 最⼩值0.1元
@DecimalMax(value = "10000.00") // 最⼤值10000元
private Double doubleValue = null;
@Min(value = 1, message = "最⼩值为1") // 最⼩值为1
@Max(value = 88, message = "最⼤值为88") // 最⼤值88
@NotNull // 不能为空
private Integer integer;
@Range(min = 1, max = 888, message = "范围为1⾄888") // 限定范围
private Long range;
// 邮箱验证
@Email(message = "邮箱格式错误")
private String email;
@Size(min = 20, max = 30, message = "字符串长度要求20到30之间。")
new User(null);//静态检查会报警告,运⾏时若使⽤了name的⽅法,会报异常
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论