java获取参数名为arg1底层原理

阅读 75

2022-04-29

java编译成字节码默认不保存方法参数信息,编译时需要设置java编译器保存设置,或者maven添加依赖,网上可搜索,仅支持java8。
现在主要探讨原理,保存参数名其字节码保存了属性信息里,反射可获取,未开启情况下,源码Parameter调用的方法为

public String getName() {
        // Note: empty strings as paramete names are now outlawed.
        // The .equals("") is for compatibility with current JVM
        // behavior.  It may be removed at some point.
        if(name == null || name.equals(""))
            return "arg" + index;//这便是获取arg0的原因
        else
            return name;
    }```

精彩评论(0)

0 0 举报