在 Java 中,assert 断言本身是不能“自定义行为”的,但可以从使用方式和替代方案两个层面来理解“自定义”。
assert 的特点Java 的断言语法是:
assert condition;
assert condition : "错误信息";
-ea 开启)AssertionError示例:
assert x > 0 : "x 必须大于 0,当前值:" + x;
public class AssertUtil {
public static void isTrue(boolean condition, String message) {
if (!condition) {
throw new IllegalArgumentException(message);
}
}
}
使用:
AssertUtil.isTrue(x > 0, "x 必须大于 0");
✅ 优点:
-ea 开关影响Assertimport org.springframework.util.Assert;
Assert.isTrue(x > 0, "x 必须大于 0");
失败抛出:
IllegalArgumentExceptionassertEquals(expected, actual);
⚠️ 仅用于单元测试,不能用于生产代码
assert,什么时候不用?| 场景 | 建议 |
|---|---|
| 内部不变量检查 | ✅ assert |
| 用户输入校验 | ❌ 用异常 |
| 业务规则 | ❌ 用自定义异常 |
| 测试代码 | ✅ JUnit |
Java 的
assert不能自定义逻辑,只能自定义提示信息;
真正“可自定义断言”应该用工具类或框架断言。
如果你愿意,我可以帮你写一个企业级断言工具类模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。