在项目中统一断言,简化if判断,为此封装一个类似junit的断言工具类。

    1. import com.lenton.inner.common.exception.ErrorCode;
    2. import org.apache.commons.lang3.StringUtils;
    3. import java.util.Collection;
    4. import java.util.Map;
    5. import java.util.Objects;
    6. import java.util.function.Predicate;
    7. /**
    8. * 断言,断言不通过抛出异常
    9. * <p> 校验检查工具类 </p>
    10. *
    11. * @author mori
    12. * @date 2021/07/27
    13. */
    14. public final class Assert {
    15. /**
    16. * 断言这个 boolean 为 true
    17. * <p>为 false 则抛出异常</p>
    18. *
    19. * @param expression boolean 值
    20. * @param errorCode 错误代码
    21. * @param params 消息参数
    22. */
    23. public static void assertTrue(boolean expression, ErrorCode errorCode, Object... params) {
    24. if (!expression) {
    25. throw ExceptionUtils.errorCodeException(errorCode,params);
    26. }
    27. }
    28. /**
    29. * 断言这个 boolean 为 false
    30. * <p>为 true 则抛出异常</p>
    31. *
    32. * @param expression boolean 值
    33. * @param errorCode 错误代码
    34. * @param params 消息参数
    35. */
    36. public static void assertFalse(boolean expression,ErrorCode errorCode, Object... params) {
    37. assertTrue(!expression, errorCode, params);
    38. }
    39. /**
    40. * 断言这个 expression 为 true
    41. * <p>为 false 则抛出异常</p>
    42. *
    43. * @param expression 断言函数
    44. * @param entity 断言对象
    45. * @param errorCode 错误代码
    46. * @param params 消息参数
    47. */
    48. public static <T> void assertTrue(Predicate<T> expression, T entity, ErrorCode errorCode, Object... params) {
    49. assertTrue(expression.test(entity), errorCode, params);
    50. }
    51. /**
    52. * 断言这个字符串不是空白
    53. * <p>为空白字符串 则抛出异常</p>
    54. *
    55. * @param str str
    56. * @param errorCode 错误代码
    57. * @param params 消息参数
    58. */
    59. public static void assertNotBlank(String str, ErrorCode errorCode, Object... params) {
    60. assertTrue(StringUtils::isNotBlank, str, errorCode, params);
    61. }
    62. /**
    63. * 断言这个Object为null
    64. * <p>不为null 则抛出异常</p>
    65. *
    66. * @param object 对象
    67. * @param errorCode 错误代码
    68. * @param params 消息参数
    69. */
    70. public static void assertNull(Object object, ErrorCode errorCode, Object... params) {
    71. assertTrue(Objects::isNull, object, errorCode, params);
    72. }
    73. /**
    74. * 断言这个Object不为null
    75. * <p>为null 则抛出异常</p>
    76. *
    77. *
    78. * @param object 对象
    79. * @param errorCode 错误代码
    80. * @param params 消息参数
    81. */
    82. public static void assertNotNull(Object object, ErrorCode errorCode, Object... params) {
    83. assertTrue(Objects::nonNull, object, errorCode, params);
    84. }
    85. /**
    86. * 断言这个集合不是empty
    87. * <p>为empty 则抛出异常</p>
    88. *
    89. * @param collection 集合
    90. * @param errorCode 错误代码
    91. * @param params 消息参数
    92. */
    93. public static void assertNotEmpty(Collection<?> collection, ErrorCode errorCode, Object... params) {
    94. assertTrue(CollectionUtils.isNotEmpty(collection), errorCode, params);
    95. }
    96. /**
    97. * 断言这个集合是empty
    98. * <p>不为empty 则抛出异常</p>
    99. *
    100. * @param collection 集合
    101. * @param errorCode 错误代码
    102. * @param params 消息参数
    103. */
    104. public static void assertEmpty(Collection<?> collection, ErrorCode errorCode, Object... params) {
    105. assertTrue(CollectionUtils.isEmpty(collection), errorCode, params);
    106. }
    107. /**
    108. * 断言这个 map 不为 empty
    109. * <p>为 empty 则抛异常</p>
    110. *
    111. * @param map 集合
    112. * @param errorCode 错误代码
    113. * @param params 消息参数
    114. */
    115. public static void assertNotEmpty(Map<?, ?> map, ErrorCode errorCode, Object... params) {
    116. assertTrue(CollectionUtils.isNotEmpty(map), errorCode, params);
    117. }
    118. /**
    119. * 断言这个 map 为 empty
    120. * <p>不为 empty 则抛异常</p>
    121. *
    122. * @param map 集合
    123. * @param errorCode 错误代码
    124. * @param params 消息参数
    125. */
    126. public static void assertEmpty(Map<?, ?> map, ErrorCode errorCode, Object... params) {
    127. assertTrue(CollectionUtils.isEmpty(map), errorCode, params);
    128. }
    129. /**
    130. * 断言这个 数组 不为 empty
    131. * <p>为 empty 则抛异常</p>
    132. *
    133. * @param array 数组
    134. * @param errorCode 错误代码
    135. * @param params 消息参数
    136. */
    137. public static void assertNotEmpty(Object[] array,ErrorCode errorCode, Object... params) {
    138. assertTrue(ArrayUtils.isNotEmpty(array), errorCode, params);
    139. }
    140. /**
    141. * 断言两个对象相等
    142. * <p>不相等 则抛出异常</p>
    143. *
    144. * @param object 对象1
    145. * @param other 对象2
    146. * @param errorCode 错误代码
    147. * @param params 消息参数
    148. */
    149. public static void assertEquals(Object object, Object other, ErrorCode errorCode, Object... params) {
    150. assertTrue(Objects.equals(object, other), errorCode, params);
    151. }
    152. /**
    153. * 断言两个对象不相等
    154. * <p>相等 则抛出异常</p>
    155. *
    156. * @param object 对象1
    157. * @param other 对象2
    158. * @param errorCode 错误代码
    159. * @param params 消息参数
    160. */
    161. public static void assertNotEquals(Object object, Object other, ErrorCode errorCode, Object... params) {
    162. assertTrue(!Objects.equals(object, other), errorCode, params);
    163. }
    164. }