更实用高效的代码编写-持续记录更新
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最好