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

Getting passed parameter name in java?

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

例如:

int mParam = 10;

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

func(mParam);

想要的输出:

mParam

使用反射,我设法得到:

myParam

我认为 java 不可能。由于java使用按值传递来传递参数。因此,当您将参数传递给 func() 时,它只传递变量的值而不传递其他任何东西。

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

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

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

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

或者最好将 Map 作为参数传递:

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

这样您就可以传递命名整数并在您的方法中按名称获取整数