在 Java 里,“Parameter(参数)”出现在多个场景中,获取值的方式取决于你指的是哪一种。下面按常见情况说明:
最常见的情况:方法定义中的参数
public void test(String name, int age) {
// 直接使用参数
System.out.println(name);
System.out.println(age);
}
✅ 获取方式:
方法被调用时由调用者传入,方法体内直接使用即可。
test("Tom", 18);
java.lang.reflect.Parameter)用于获取方法参数信息(Java 8+)
Method method = clazz.getMethod("test", String.class, int.class);
Parameter[] parameters = method.getParameters();
for (Parameter p : parameters) {
String name = p.getName(); // 参数名
Class<?> type = p.getType(); // 参数类型
System.out.println(name + " : " + type);
}
⚠️ 注意:
javac -parameters xxx.java
或在 Maven 中:
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
❗ 反射 Parameter 不能直接“获取值”,只能获取参数定义信息
要获取调用时的值,需要用 Method.invoke() 传入参数
@MyAnno(value = "hello", count = 3)
public class Demo {}
MyAnno anno = Demo.class.getAnnotation(MyAnno.class);
String value = anno.value();
int count = anno.count();
✅ 通过注解对象直接调用方法获取
@GetMapping("/user")
public String getUser(@RequestParam("id") int id) {
System.out.println(id);
return "ok";
}
或统一获取:
public String getUser(HttpServletRequest request) {
String id = request.getParameter("id");
}
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
| 场景 | 如何“获取值” |
|---|---|
| 方法参数 | 方法体内直接使用 |
| 反射 Parameter | 只能获取定义,值由 invoke 传入 |
| 注解参数 | 注解对象.方法() |
| Web 参数 | @RequestParam / request.getParameter |
| main 参数 | String[] args |
如果你指的是 某一种具体场景(比如反射、Spring、MyBatis、注解等),可以告诉我,我可以给你更精准的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。