在 Java 里,“校验 Parameter 参数”通常有几种常见场景,我先按最常见情况给你讲,然后你再看哪种符合你的需求。
目的:方法入参不能为 null、不能为空、范围合法等。
public void getUser(Long id, String name) {
if (id == null) {
throw new IllegalArgumentException("id 不能为 null");
}
if (name == null || name.isEmpty()) {
throw new IllegalArgumentException("name 不能为空");
}
}
✅ 优点:简单、无依赖
❌ 缺点:代码啰嗦
javax.validation(推荐)适合 Spring / Jakarta 项目
public void getUser(@NotNull Long id, @NotBlank String name) {
}
public void getUser(@Valid @NotNull Long id) {
}
或用 MethodValidationPostProcessor(Spring)
@Validated
@Service
public class UserService {
public void getUser(@NotNull Long id) {
}
}
抛异常:ConstraintViolationException
public void getUser(Long id) {
Assert.notNull(id, "id 不能为 null");
}
java.lang.reflect.Parameter(反射场景)如果你指的是反射里的 Parameter 对象:
Method method = clazz.getMethod("getUser", Long.class, String.class);
Parameter[] parameters = method.getParameters();
for (Parameter parameter : parameters) {
System.out.println(parameter.getName());
System.out.println(parameter.getType());
System.out.println(parameter.isAnnotationPresent(NotNull.class));
}
⚠ 注意:
-parametersjavac -parameters xxx.java
@PostMapping("/user")
public void addUser(@RequestBody @Valid UserDTO user) {
}
| 场景 | 推荐方式 |
|---|---|
| 普通方法 | 手动 / Assert |
| Spring 项目 | @Validated + 注解 |
| 反射分析 | Parameter + 注解 |
| Web 接口 | @Valid |
如果你能具体说:
我可以给你更精准的示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。