美文网首页
java中,获取参数名

java中,获取参数名

作者: 027f63d16800 | 来源:发表于2017-10-19 21:47 被阅读139次

java中,将类文件编译成字节码时,低版本的jdk并不会将函数的参数名编译进去,而高版本的则是可选项
因此,当要实现获取函数参数名的这样的需求时,就需要采用一些曲线救国的方法了。
jdk1.5开始,java引入了annotation,我们可以通过annotation来实现获取函数参数名。
首先,声明一个annotation

@Retention(RetentionPolicy.RUNTIME)  //指定运行时保留
@Target(ElementType.PARAMETER)     //目标为参数
@Documented                                         
public @interface Anno {
    String value() ;
}

然后,在声明一个方法时,使用该annotation来注解所有的参数名:

public String foo(@Anno("p1") String p1, String p2, @Anno("p3") String p3) {
        return null;
    }

最后,实现一个注解处理器来获取参数名:

   Class javaBeanClazz = Class.forName("JavaBean");
        Method fooMethod = javaBeanClazz.getDeclaredMethod("foo", String.class, String.class, String.class);
        Annotation[][] annos = fooMethod.getParameterAnnotations();
        for (Annotation[] as : annos) {
            for (Annotation a : as) {
                if (a instanceof Anno) {
                    System.out.println(((Anno) a).value());
                }
            }
        }

相关文章

  • java中,获取参数名

    java中,将类文件编译成字节码时,低版本的jdk并不会将函数的参数名编译进去,而高版本的则是可选项因此,当要实现...

  • java获取命令行参数

    设置命令行参数java -Dxxx(参数名) 代码中获取参数名System.getProperty("xxx")

  • Python函数

    Java有函数 那Python也是有函数的 函数定义 定义函数 要使用def语句 依次写出函数名、括号、括号中的参...

  • 获取url的参数

    获取URL中的参数名及参数值的集合 通过参数名获取url中的参数值 通过正则获取到参数值;

  • 36、Excel 获取超链接的连接地址 ETGetLinks

    函数名:ETGetLinks 函数功能:获取区域内超链接的连接地址 应用场景: 1、获取超链接的连接地址 参...

  • 函数,自定义函数,内置函数

    自定义函数 PHP中在同一个脚本,函数名不能重复;在js中可以有重复名function 函数名(形参1,形参2){...

  • 2019-03-18——Java反射 Parameter

    Parameter类主要用于在程序运行状态中,动态地获取参数信息,包括参数名、修饰符、参数类型、参数化类型、可变参...

  • 关于java8在android中使用

    java8的新特性,能使用到android中的Lambda表达式、方法引用;像获取反射参数名字、Optional、...

  • sys._getframe()

    1、获取调用者的函数名,两种方法 2、获取调用者的传参 输出:aaaaa 参考资料:https://blog.cs...

  • JS函数

    一、声明函数 function 函数名 (){函数体} function 函数名 (形参1,形参2...){函数体...

网友评论

      本文标题:java中,获取参数名

      本文链接:https://www.haomeiwen.com/subject/ysipuxtx.html