java annotation 用法
来源:互联网 发布:流量电话软件 编辑:程序博客网 时间:2024/06/04 19:25
类注释
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)@Documented
public @interface Description {
String value();
}
方法注释
//注意这里的@Target与@Description里的不同,参数成员也不同
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Person {
String id();
String name();
}
注释的值是数组的情况
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Names {
//类似于 @Target({ElementType.PACKAGE, ElementType.TYPE})
String[] value();
}
用法:
//类注释
@Description("xuejx 测试")
public class Test {
//方法注释
@Person(id="1",name="xuejianxin test1方法")
public void test1 (){
System.out.println("test2 方法");
}
@Person(id="2",name="xuejianxin test2方法")
public void test2 (){
System.out.println("test2 方法");
}
//测试数组注释
@Names({"xuejianxin1","xuejianxin2"})
public void test3 (){
System.out.println("test3 方法");
}
}
通过反射来获取信息
public static void main(String[] args) {
Class c=Test.class;
//类的注释
if(c.isAnnotationPresent(Description.class)){
Description des = (Description)c.getAnnotation(Description.class);
System.out.println("描述:"+des.value());
System.out.println("-----------------");
}
//一般方法注释
Method[] methods=c.getDeclaredMethods();
for(int i=0;i<methods.length;i++){
if( methods[i].isAnnotationPresent(Person.class)){
Person p = methods[i].getAnnotation(Person.class);
System.out.println("id :"+p.id());
System.out.println("名称:"+p.name());
}
//数组的注释处理
if( methods[i].isAnnotationPresent(Names.class)){
Names names = methods[i].getAnnotation(Names.class);
String[] nameArary=names.value();
for(int j=0;j<nameArary.length;j++){
System.out.println(nameArary[j]);
}
}
}
}
以下是程序输出
描述:xuejx 测试
-----------------
id :1
名称:xuejianxin test1方法
id :2
名称:xuejianxin test2方法
xuejianxin1
xuejianxin2
- java annotation 用法
- Java注解annotation用法
- Java中的注释Annotation用法
- 注释(@,annotation)在JAVA在用法
- Java annotation 自定义注释@interface的用法
- Java annotation 自定义注释@interface的用法
- Java annotation 自定义注释@interface的用法
- Java annotation 自定义注释@interface的用法
- Java annotation 自定义注释@interface的用法
- Java annotation 自定义注释@interface的用法
- java基础-注解Annotation原理和用法
- Java annotation 自定义注释@interface的用法
- Java annotation 自定义注释@interface的用法
- Java annotation 自定义注释@interface的用法
- Annotation简要用法(Java反射)
- JAVA Annotation & 自定义Annotation
- java Annotation Annotation elements
- Java注解annotation用法和自定义注解处理器
- 安装nginx前的pcre中报错
- memset0和memset1的区别。。
- Linux Kernel版本发展图
- 首款MeeGo系统上网本 华硕Eee PC X101H独家首测(1)
- c++类中成员的构造顺序
- java annotation 用法
- 透明桥接
- Linux 下 MySQL 5.5.8 源码编译安装记录
- C#中的object类深入理解
- linux 模拟鼠标事件 qt
- ACMSTEP 2.1.3 相遇周期 //数论 分数的最小公倍数
- CentOS 上安装nginx 0.8.53
- android: check network status 检查网络状态
- exercise2-1