java --自定义注解的使用
2015-03-29 10:09
393 查看
Annotaton(注解)是jdk5.0后引入的,先今很多主流框架都支持注解。
注解一般用于创建文档,跟踪代码中的依赖以及编译检查。以@注解名存在
@Deprecated 被废弃的代码
@suppressWarings 警告
还有一些用于专门创建自定义的注解
@retemtop 使用级别,(runtime
,class,source)
@Documente 是否被包含在javadoc中
@Inherited 允许子类继承父类中的注解
定义一个注解目的还是在于使用,使用注解最主要的部分在于对注解的处理,那么就会涉及到注解处理器。从原理上讲,注解处理器就是通过反射机制获取被检查方法上的注解信息,然后根据注解元素的值进行特定的处理。
根据我们上节了解到的反射机制
我们做一个注解的定义和使用
1定义注解类
2定义用户类
3获取注解类方法
4客户端测试
测试结果:
用户信息:password用户描述:密码
用户信息:userName用户描述:用户名
注解一般用于创建文档,跟踪代码中的依赖以及编译检查。以@注解名存在
jdk中常用的注解有
@Override 覆盖超类中方法@Deprecated 被废弃的代码
@suppressWarings 警告
还有一些用于专门创建自定义的注解
自定义注解
@Target 应用注解位置:字段,方法,类..@retemtop 使用级别,(runtime
,class,source)
@Documente 是否被包含在javadoc中
@Inherited 允许子类继承父类中的注解
定义一个注解目的还是在于使用,使用注解最主要的部分在于对注解的处理,那么就会涉及到注解处理器。从原理上讲,注解处理器就是通过反射机制获取被检查方法上的注解信息,然后根据注解元素的值进行特定的处理。
根据我们上节了解到的反射机制
我们做一个注解的定义和使用
1定义注解类
importjava.lang.annotation.ElementType; importjava.lang.annotation.Retention; importjava.lang.annotation.RetentionPolicy; importjava.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interfaceUseCase { public String name(); public String desciption() default "no description"; }
2定义用户类
package com.bjpower.node.spring; public class User { private String userName; private String password; @UseCase(name = "password", desciption = "密码") public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @UseCase(name="userName",desciption="用户名") public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public User() { } public User(String username) { this.userName = username; } }
3获取注解类方法
public static void getrefect(String clas){ try { Class<?> cls = Class.forName(clas);//反射获取类的Class对象 Method [] methods = cls.getDeclaredMethods();//获取类的所有方法 for (Method method : methods) { //判断方法上是否有指定的注解,有则获取注解进行打印 if(method.isAnnotationPresent(UseCase.class) == true){ UseCase usercase = method.getAnnotation(UseCase.class);//获取注解类 System.out.println("用户信息:"+ usercase.name()+" 用户描述:"+usercase.desciption() ); } } } catch (Exception e) { e.printStackTrace(); } }
4客户端测试
public class Client { public static void main(String[] args) { getrefect("com.bjpower.node.spring.User"); } }
测试结果:
用户信息:password用户描述:密码
用户信息:userName用户描述:用户名
小结:
注解的解析是利用反射,动态的解析的,相比注释,他有自己独特的优点,我们可以对某些字段或方法进行特别说明来对页面信息进行展示。相关文章推荐
- Java基础复习笔记12Java自定义注解Annotation的使用
- Java自定义注解Annotation的使用
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
- Java Annotation 注解的介绍和使用 自定义注解
- Java注解(自定义方法注解使用及测试)
- java自定义注解及注解使用
- java 自定义注解使用
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
- Java自定义注解的定义与使用
- Java中的Annotation详解和使用 自定义注解
- Java使用反射、自定义注解注入对象
- java使用自定义注解
- java --自定义注解的使用
- JAVA 自定义注解在自动化测试中的使用
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
- java反射以及自定义注解二者的使用
- 使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句
- [原创]Java使用反射及自定义注解实现对象差异性比较
- java自定义注解及注解使用(注解学习一)
- java自定义注解及注解使用