java - 需要打印调用时使用的函数的实际参数名称

标签 java performance swing reflection

我想在函数中打印函数实际参数名称。

作为引用,请参阅下面的代码。这里我正在尝试反射。

class Refrction
{
    public static int a=12;
    public static int b=12;
    public static int c=13;

    public void click(int x)
    {
        Class cls=Refrction.class;
        Field[] fields = cls.getFields();               

        //here i want to print "a" if function actual parameter is "a" while calling the click function
        //here i want to print "b" if function actual parameter is "b" while calling the click function
        //here i want to print "c" if function actual parameter is "c" while calling the click function

    }
}


public class Reflections extends Refrction
{
    public static void main(String[] args)
    {
        Refrction ab=new Refrction();
        ab.click(a);
        ab.click(b);
        ab.click(c);
    }
}

最佳答案

除非abc的值永远不会改变(并且您可以通过查看值)这是不可能的。您需要向该方法传递更多信息。

一种方法是这样做

public void click(int x, String identifier) {
    ...
}

并调用它

ab.click(a, "a");

或者,您可以将值包装在(可能可变的)对象中,如下所示:

class IntWrapper {
    int value;
    public IntWrapper(int value) {
        this.value = value;
    }
}

然后做

public static IntWrapper a = new IntWrapper(11);

public void click(IntWrapper wrapper) {
    if (wrapper == a) {
        ...
    }
    ...
}

关于java - 需要打印调用时使用的函数的实际参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754484/

相关文章:

java - 应用程序启动时无法获取位置

java - 如何使按钮每秒在布局中随机移动

java - 如果光标退出,如何在几秒钟后隐藏弹出窗口

java - Spring并返回大量Json数据

java - 滚动 Pane 垂直滚动条不显示滚动旋钮

java - 从 EJB 创建文本文件,无需 java.io

c# - 识别奇数、偶数——二进制与模数

performance - 您如何平衡业务流程变更与软件变更带来的挑战?

java - 在 Jpanel 上拖动形状

java - 为什么在将组件添加到容器时 AWT/Swing 不自动重绘?