温馨提示×

温馨提示×

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

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

Java参数如何获取

发布时间:2026-07-23 16:56:43 来源:亿速云 阅读:83 作者:小樊 栏目:编程语言

在 Java 中,“参数”通常指方法参数构造方法参数命令行参数。下面按常见场景给你一个清晰总结。


一、方法参数(最常见)

1️⃣ 获取方法参数的值

Java 方法参数直接通过参数名获取,不需要额外操作。

public void printSum(int a, int b) {
    int sum = a + b;
    System.out.println(sum);
}

调用:

printSum(3, 5);

a = 3b = 5


2️⃣ 获取方法参数名(反射,编译时需保留)

默认情况下,编译后的 .class 文件不包含参数名

方式一:Java 8+,编译时加 -parameters

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

三、main 方法参数(命令行参数)

public static void main(String[] args) {
    for (String arg : args) {
        System.out.println(arg);
    }
}

运行:

java Main hello world

输出:

hello
world

args[0] = "hello"


四、可变参数(varargs)

public void test(int... nums) {
    for (int n : nums) {
        System.out.println(n);
    }
}

调用:

test(1, 2, 3);

本质是一个数组 int[] nums


五、对象 / Map / JSON 参数(常见误区)

对象参数

public void save(User user) {
    String name = user.getName();
}

➡️ 通过 getter 方法 获取


Map 参数

public void print(Map<String, Object> map) {
    Object value = map.get("key");
}

六、Spring 中的参数获取(补充)

Controller 方法参数

@GetMapping("/test")
public String test(@RequestParam String name) {
    return name;
}

七、总结速查表

场景 获取方式
方法参数值 直接用参数名
方法参数名(反射) -parameters + Parameter.getName()
main 参数 args[]
构造方法参数 Constructor.getParameters()
可变参数 当成数组
对象参数 getter
Map 参数 map.get()

如果你指的是 Lambda 参数、注解参数、Spring 参数、HTTP 请求参数,可以具体一点,我可以针对性讲解。

向AI问一下细节

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

AI