更实用高效的代码编写-持续记录更新

java8的Collectors.joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)

// 定义人名数组
String[] names = {"jordan", "kobe", "curry", "durant", "james"};
Stream<String> stream = Stream.of(names);
// 拼接成 [x, y, z] 形式
String result1 = stream.collect(Collectors.joining(", ", "[", "]"));
// 拼接成 x | y | z 形式
String result2 = stream.collect(Collectors.joining(" | ", "", ""));
// 拼接成 (x -> y -> z) 形式
String result3 = stream.collect(Collectors.joining(" -> ", "(", ")"));

 javax.validation.constraints注解进行参数校验的最佳实践,有些注解是都能校验的,但是建议不要折腾这种偏门,有专用的为啥不用专用的呢

数值校验:
@DecimalMax(value)    BigDecimal的字符串形式的数值,最好是整数,比@Max范围广,超过Long.MAX_VALUE和Long.MIN_VALUE时用这个,且参数必须是非空的字符串数值
@DecimalMin(Value)     BigDecimal的字符串形式的数值,最好是整数,比@min范围广,超过Long.MAX_VALUE和Long.MIN_VALUE时用这个,且参数必须是非空的字符串数值
@Max(value)                 处在Long范围内整数值都可以用这个
@Min(value)                  处在Long范围内整数值都可以用这个
@Range(min=, max=)   整数值限制一个范围(不超过Long范围)
@Digits(integer=, fraction=)           数值,可以是小数,参数是整数部分和小数部分的位数,不能超过,注意不是值不能超过,是位数
@Negative                    必须是负数
@NegativeOrZero        必须是非正数
@Positive                     必须是正数
@PositiveOrZero          必须是非负数

日期时间校验:
@Future(message="") 日期或时间类型,必须比现在晚
@Past(message="")    日期或时间类型,必须比现在早
@FutureOrPresent
@PastOrPresent

字符串校验:
@NotNull                      只要不为null就行
@Length(min=, max=,message=)      字符串长度限制
@NotBlank                   不为null,且去除空格后length大于0,简言之,得有字符
@Pattern(regex=, message=)            校验匹配给定的正则表达式

集合校验:
@NotEmpty                  被注释的集合不为null,且size大于0,也能用于String,如果是String,用@NotBlank最好
@Size(min=, max=,message=)          集合的size大小限制,如果是String,用@Length最好

 

 

posted @ 2021-05-29 11:41  鼠标的博客  阅读(70)  评论(0编辑  收藏  举报