温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何校验java Parameter参数

发布时间:2026-09-13 15:42:00 来源:亿速云 阅读:88 作者:小樊 栏目:编程语言

在 Java 里,“校验 Parameter 参数”通常有几种常见场景,我先按最常见情况给你讲,然后你再看哪种符合你的需求。


一、校验方法参数(最常见)

目的:方法入参不能为 null、不能为空、范围合法等。

1️⃣ 手动校验(最通用)

public void getUser(Long id, String name) {
    if (id == null) {
        throw new IllegalArgumentException("id 不能为 null");
    }
    if (name == null || name.isEmpty()) {
        throw new IllegalArgumentException("name 不能为空");
    }
}

✅ 优点:简单、无依赖
❌ 缺点:代码啰嗦


2️⃣ 使用 javax.validation(推荐)

适合 Spring / Jakarta 项目

定义参数校验

public void getUser(@NotNull Long id, @NotBlank String name) {
}

在 Spring 中开启校验

public void getUser(@Valid @NotNull Long id) {
}

或用 MethodValidationPostProcessor(Spring)

@Validated
@Service
public class UserService {
    public void getUser(@NotNull Long id) {
    }
}

抛异常:ConstraintViolationException


3️⃣ 使用 Assert(Spring 提供)

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));
}

⚠ 注意:

  • 编译时要加 -parameters
javac -parameters xxx.java

三、Controller 层参数校验(Spring MVC)

@PostMapping("/user")
public void addUser(@RequestBody @Valid UserDTO user) {
}

四、总结选型

场景 推荐方式
普通方法 手动 / Assert
Spring 项目 @Validated + 注解
反射分析 Parameter + 注解
Web 接口 @Valid

如果你能具体说:

  • 方法参数 / Controller / 反射 Parameter
  • 是否使用 Spring
  • Java 版本

我可以给你更精准的示例代码

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI