如何获取方法参数的描述信息

本文介绍了一种利用Java Annotation特性来获取类方法参数数量及描述的方法。通过自定义Annotation并应用于方法及其参数上,实现了在运行时获取这些元数据的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需求:

AtELite中选择控件的某个方法,希望返回该方法的参数个数和各个参数的描述说明。其中参数个数用于构建输入框,各个参数的描述说明用于当鼠标放到输入框上时,用alt的形式显示该输入框对应参数的描述说明。

 

引申场景:

选择某个类的方法名称,希望能返回该方法产生的个数以及各个参数的描述说明。如:

/**

*设置id和name

*@param 用户Id

*@param 用户姓名

/**

 

public void setIdAndName(

int id,String name){

}

要求返回setIdAndName的参数个数2和每个参数的描述,如:用户Id,用户姓名

 

 

解决方法,引进Annotation来解决该问题。

1.定义Annotation。

2.定义相关类。

3.写测试类。

4.测试结果

 

原文代码参考:http://www.cnblogs.com/maxblog/archive/2010/09/01/1814821.html

 

1.定义Annotation。

 

2.定义相关类。

 

3.写测试类。

 

4.测试结果

 

********字段的Annotation*************

字段id的Annotation: 字段编号 int

字段name的Annotation: 字段姓名 class java.lang.String

********方法的Annotation********

方法setId的Annotation:

   设置编号   void

方法setId的参数的Annotation

 设置编号 int

方法setIdAndName的Annotation:

   设置编号和姓名   void

方法setIdAndName的参数的Annotation

 设置编号 int

 姓名 class java.lang.String

方法setIdAndName2的Annotation:

   设置编号和姓名   void

方法setIdAndName2的参数的Annotation

 设置编号 int

没有添加Annotation参数

方法getName的Annotation:

   获得姓名   class java.lang.String

方法getName的参数的Annotation

方法没有参数

方法getId的Annotation:

   获得编号   int

方法getId的参数的Annotation

方法没有参数

方法setName的Annotation:

   设置姓名   void

方法setName的参数的Annotation

 姓名 class java.lang.String

 

总结:

1.若方法没有参数,则method.getParameterAnnotations返回数组长度为0,否则大于0

2.若方法参数没有Annotation,则该参数的method.getParameterAnnotation[i]的长度为0

3.getParameterAnnotations的返回类型之所以为一个二维数组主要是由于一个参数上可以存在多个annotation。这样第一维分别对应方法的各个参数,长度也和参数个数相等,而第二维则分别对应于一个参数上的多个注annotation,长度和参数上annotation的个数相等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值