在java中获取传递的参数名称?

时间:2016-03-21 17:15:58

标签: java method-parameters

如何获取传递的参数名称,即在运行时传递的名称?

例如:

int mParam = 10;

public void func (int myParam){
 //print wanted name
}

func(mParam);

通缉输出:

mParam

使用反射,我设法得到:

myParam

2 个答案:

答案 0 :(得分:0)

我认为在java中是不可能的。由于java使用pass by value来传递参数。因此,当您将参数传递给func()时,它只传递变量值。

有可能在java中使用reflect.parameter包知道函数定义的参数。如果你想知道你调用的函数的参数细节你可以查看这个问题 Can I obtain method parameter name using Java reflection?

但是你无法知道传递的参数的名称。

答案 1 :(得分:-1)

您可以更改方法功能以接收2个参数,例如:

public void func (int myParam, String myParamName){
 //print wanted name
}

或者更好的是将Map作为参数传递:

    public void func (Map<String, Integer> map){
 //print wanted name
}

这样您就可以传递命名整数并在方法

中按名称获取整数