在 Java 里,“Parameter 参数为空”通常并不是语法问题,而是调用方式 / 框架机制 / 代码逻辑导致的。下面按常见场景给你系统梳理一下。
public void test(String name) {
System.out.println(name);
}
// 调用
test(null); // 参数为 null
✅ 这是正常行为,参数就是 null
@RequestParam 没传参数@GetMapping("/test")
public void test(@RequestParam String name) {
}
请求:
/test
❌ 报错或 name == null
✅ 解决:
@RequestParam(required = false) String name
或设置默认值:
@RequestParam(defaultValue = "default") String name
@PathVariable 不匹配@GetMapping("/user/{id}")
public void test(@PathVariable Long id) {
}
请求:
/user
❌ 404 / 参数空
@PostMapping("/save")
public void save(User user) {
}
前端没传 JSON 或表单:
{}
➡ user 不为 null,但字段为空
✅ 前端必须:
{
"name": "Tom"
}
Method method = ...
Parameter[] parameters = method.getParameters();
如果:
-parameters➡ parameter.getName() 是 arg0、arg1
✅ 解决:
javac -parameters xxx.java
public User(String name) {
this.name = name;
}
调用:
new User(null);
➡ 参数为 null,但不是异常
List<User> select(@Param("id") Integer id);
调用:
mapper.select(null);
➡ SQL 中 id 为 null
<not initialized>| 检查项 | 是否 |
|---|---|
| 是否真的传了参数 | ✅ |
| 是否 required=false | ✅ |
| 是否 POST/GET 匹配 | ✅ |
| 是否 JSON 格式正确 | ✅ |
| 是否编译参数问题 | ✅ |
你可以直接贴一段 代码 + 调用方式,我可以精准告诉你为什么是空、怎么改。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。