在 Java 里经常说的 “Parameter 参数解析”,通常出现在以下场景之一。我按常见场景 + 示例来说明,你可以对号入座。
这是最基础的 Java 语法层面。
public void test(String name, int age) {
System.out.println(name);
System.out.println(age);
}
所谓“解析”就是:
test("Tom", 18);
✅ 没有额外解析逻辑,靠 Java 编译器完成。
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
运行:
java Main --name Tom --age 18
手动解析示例:
Map<String, String> params = new HashMap<>();
for (int i = 0; i < args.length; i++) {
if (args[i].startsWith("--")) {
params.put(args[i].substring(2), args[++i]);
}
}
✅ 适合简单场景
❌ 复杂参数不推荐手写
@GetMapping("/user")
public String getUser(
@RequestParam String name,
@RequestParam int age) {
return name + age;
}
请求:
/user?name=Tom&age=18
✅ Spring 自动完成参数绑定和类型转换
@GetMapping("/user/{id}")
public String getUser(@PathVariable Long id) {
return "id=" + id;
}
@PostMapping("/user")
public String addUser(@RequestBody User user) {
return user.toString();
}
User 类:
class User {
public String name;
public int age;
}
请求体:
{
"name": "Tom",
"age": 18
}
✅ Jackson 自动解析
@MyAnnotation(value = "test")
public class Demo {}
解析:
MyAnnotation ann = Demo.class.getAnnotation(MyAnnotation.class);
String value = ann.value();
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM user WHERE name = ? AND age = ?"
);
ps.setString(1, "Tom");
ps.setInt(2, 18);
✅ JDBC 负责参数绑定
如果是命令行 / 配置参数,推荐:
示例(Picocli):
@Option(names = "--name")
String name;
Java 中“Parameter 解析”本质是:把外部输入(请求 / 命令行 / 注解 / 配置)映射到方法参数或对象属性。
如果你能告诉我:
我可以直接给你对应场景的完整示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。