在 Java 中,“参数”通常指方法参数、构造方法参数或命令行参数。下面按常见场景给你一个清晰总结。
Java 方法参数直接通过参数名获取,不需要额外操作。
public void printSum(int a, int b) {
int sum = a + b;
System.out.println(sum);
}
调用:
printSum(3, 5);
✅ a = 3,b = 5
默认情况下,编译后的 .class 文件不包含参数名。
-parametersjavac -parameters Test.java
import java.lang.reflect.*;
public class Test {
public void hello(String name, int age) {}
public static void main(String[] args) throws Exception {
Method method = Test.class.getMethod("hello", String.class, int.class);
for (Parameter p : method.getParameters()) {
System.out.println(p.getName());
}
}
}
输出:
name
age
⚠️ 不加 -parameters 会输出 arg0, arg1
public class User {
public User(String name, int age) {}
}
获取构造方法参数:
Constructor<?> c = User.class.getConstructor(String.class, int.class);
for (Parameter p : c.getParameters()) {
System.out.println(p.getName());
}
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
运行:
java Main hello world
输出:
hello
world
✅ args[0] = "hello"
public void test(int... nums) {
for (int n : nums) {
System.out.println(n);
}
}
调用:
test(1, 2, 3);
本质是一个数组 int[] nums
public void save(User user) {
String name = user.getName();
}
➡️ 通过 getter 方法 获取
public void print(Map<String, Object> map) {
Object value = map.get("key");
}
@GetMapping("/test")
public String test(@RequestParam String name) {
return name;
}
| 场景 | 获取方式 |
|---|---|
| 方法参数值 | 直接用参数名 |
| 方法参数名(反射) | -parameters + Parameter.getName() |
| main 参数 | args[] |
| 构造方法参数 | Constructor.getParameters() |
| 可变参数 | 当成数组 |
| 对象参数 | getter |
| Map 参数 | map.get() |
如果你指的是 Lambda 参数、注解参数、Spring 参数、HTTP 请求参数,可以具体一点,我可以针对性讲解。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。