package com.tedu.test;
import com.tedu.anno.Cherry;
import com.tedu.use_anno.ParameterNameTest;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.Arrays;
public class GetAnnoPropertyValueAtMethodParameter {
public static void main(String[] args) throws NoSuchMethodException {
Class clazz = ParameterNameTest.class;
//获取“方法参数”上的注解的值
Method method = clazz.getDeclaredMethod("method2", String.class, String.class);
String[] parameterNames = getMethodParameterNamesByAnnotation(method);
System.out.println("\"方法参数\"上的注解值获取到"+ Arrays.toString(parameterNames));
}
/**
* 获取给 "方法参数" 注解的值
* @param method 要获取参数名的方法
* @return 按参数顺序排列的参数名列表
*/
public static String[] getMethodParameterNamesByAnnotation(Method method) {
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
if (parameterAnnotations == null || parameterAnnotations.length == 0) {
return null;
}
String[] parameterNames = new String[parameterAnnotations.length];
int i = 0;
for (Annotation[] parameterAnnotation : parameterAnnotations) {
for (Annotation annotation : parameterAnnotation) {
if (annotation instanceof Cherry) {
Cherry param = (Cherry) annotation;
parameterNames[i++] = param.value();
}
}
}
return parameterNames;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
通过反射获取注解的属性值 1、获取类上注解的值 1.1 定义注解类 1.2 定义使用注解的类 1.3 测试类 1.4 测试结果 2、获取属性变量上注解的值 2.1 定义注解类 2.2 定义使用注解的类 2.3 定义测试类 2.4 测试结果 3、获取方法上注解的值 3.1 定义注解类 3.2 定义使用注解的类 3.3 测试类 3.4 测试效果 4、 获取" 方法参数 " 上注解的值 4.1 定义注解类 4.2 定义使用注解的类 4.3 测试类 总结:
资源推荐
资源详情
资源评论
收起资源包目录
通过反射获取注解的属性值(源代码).zip (34个子文件)
通过反射获取注解属性
02获取属性变量上注解的值
src
com
tedu
anno
Banana.java 393B
test
GetAnnoPropertyValueAtField.java 801B
use_anno
ParameterNameTest.java 188B
02获取属性变量上注解的值.iml 433B
03获取方法上注解的值
03获取方法上注解的值.iml 433B
src
com
tedu
anno
Apple.java 332B
test
GetAnnoPropertyValueAtMethod.java 739B
use_anno
ParameterNameTest.java 181B
src
com
out
production
02获取属性变量上注解的值
com
tedu
anno
Banana.class 434B
test
GetAnnoPropertyAtField.class 1KB
use_anno
ParameterNameTest.class 501B
03获取方法上注解的值
com
tedu
anno
Apple.class 433B
test
GetAnnoPropertyAtMethod.class 1KB
use_anno
ParameterNameTest.class 486B
01获取类上注解的值
com
tedu
anno
Orange.class 437B
test
GetAnnoPropertyAtClass.class 1KB
use_anno
ParameterTest.class 410B
04获取方法参数上注解的值
com
tedu
anno
Cherry.class 413B
test
GetAnnoPropertyValueAtMethodParameter.class 2KB
use_anno
ParameterNameTest.class 897B
通过反射获取注解属性.iml 433B
.idea
uiDesigner.xml 9KB
workspace.xml 7KB
misc.xml 278B
modules.xml 1KB
.gitignore 184B
01获取类上注解的值
src
com
tedu
anno
Orange.java 337B
test
GetAnnoPropertyValueAtClass.java 650B
use_anno
ParameterTest.java 139B
01获取类上注解的值.iml 433B
04获取方法参数上注解的值
src
com
tedu
anno
Cherry.java 179B
test
GetAnnoPropertyValueAtMethodParameter.java 2KB
use_anno
ParameterNameTest.java 238B
04获取方法参数上注解的值.iml 433B
共 34 条
- 1
资源评论
FBIHackerHarry浩
- 粉丝: 3w+
- 资源: 60
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功