在 Java 里,分两种情况说“断言”:
assert 关键字(不能自定义消息逻辑,但可带表达式)Java 自带断言是:
assert condition;
assert condition : "错误信息";
✅ 可以“自定义错误信息”(只能是表达式结果)
❌ 不能自定义断言行为(怎么处理、抛什么异常)
示例:
assert list != null : "list 不能为 null";
如果断言失败:
AssertionErrorjava -ea MyApp
⚠️ 注意:
AssertionError 来当作正常流程实际项目中,几乎不用 assert 关键字,而是自己写工具类。
public class Assert {
public static void isTrue(boolean condition, String message) {
if (!condition) {
throw new IllegalArgumentException(message);
}
}
public static void notNull(Object obj, String message) {
if (obj == null) {
throw new NullPointerException(message);
}
}
}
使用:
Assert.notNull(user, "用户不能为空");
Assert.isTrue(age > 0, "年龄必须大于0");
✅ 优点:
Assert.notNull(obj, "obj must not be null");
(在 org.springframework.util.Assert)
assertEquals(1, result);
assertThrows(...)
| 方式 | 是否可自定义 | 推荐度 |
|---|---|---|
assert 关键字 |
❌ 行为不可改 | ⭐ |
| 自定义 Assert 工具 | ✅ 完全可控 | ⭐⭐⭐⭐⭐ |
| Spring Assert | ✅ 现成好用 | ⭐⭐⭐⭐ |
如果你告诉我你是 业务代码 / 测试代码 / 框架开发,我可以给你更合适的断言写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。