java注解基础
来源:互联网 发布:橙光 闪艺 知乎 编辑:程序博客网 时间:2024/06/02 03:22
java注解
了解注解是什么东西,注解的应用
@Document
**注解是否将包含在JavaDoc中**
@Retention
**表示一个注解的生命周期**RetentionPolicy.SOURCE 编译期掉弃,过完编译期不再有任何意义RetentionPolicy.CLASS 在类加载的时候丢弃RetentionPolicy.RUNTION 不会丢弃
@Target
**表示注解用在什么地方**ElementType.TYPE:用于描述类、接口或enum声明ElementType.FIELD:用于描述实例变量ElementType.METHOD ElementType.PARAMETERElementType.CONSTRUCTORElementType.LOCAL_VARIABLEElementType.ANNOTATION_TYPE 另一个注释ElementType.PACKAGE 用于记录java文件的package信息
@Inherited
**定义该注释和子类的关系**
应用
通过反射可以获取注解中的数据
例子:
定义一个注解
@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface UseCase { public String id(); public String description() default "no description"; }
public class PasswordUtils { @UseCase(id = 47, description = "Passwords must contain at least one numeric") public boolean validatePassword(String password) { return (password.matches("\\w*\\d\\w*")); } @UseCase(id = 48) public String encryptPassword(String password) { return new StringBuilder(password).reverse().toString(); } }
反射拿数据
public static void main(String[] args) { List<Integer> useCases = new ArrayList<Integer>(); Collections.addAll(useCases, 47, 48, 49, 50); trackUseCases(useCases, PasswordUtils.class); } public static void trackUseCases(List<Integer> useCases, Class<?> cl) { for (Method m : cl.getDeclaredMethods()) { UseCase uc = m.getAnnotation(UseCase.class); if (uc != null) { System.out.println("Found Use Case:" + uc.id() + " " + uc.description()); useCases.remove(new Integer(uc.id())); } } for (int i : useCases) { System.out.println("Warning: Missing use case-" + i); } }
0 0
- Java注解(1)-注解基础
- java基础-注解一-注解基础
- JAVA基础加强:注解
- java基础学习-注解
- java基础之注解
- Java基础:注解
- Java注解Annotation基础
- java注解基础
- Java基础 注解
- Java注解Annotation基础
- Java中的注解基础
- Java基础---注解
- 09.Java 基础 - 注解
- java注解基础
- Java注解Annotation基础
- java注解基础
- Java基础:注解
- java基础之注解
- 《C#网络应用编程(第3版)(工业和信息化部“十二五”规划教材) (普通高等学校计算机教育“十二五”规划教材)[精品]》-想法
- QQ给附近的人群发消息,需要验证的自动申请为好友 按键精灵源码
- eclipse使用技巧
- “Previous operation has not finished; run 'cleanup' if it was interrupted”
- 内存优化之图片优化
- java注解基础
- css~使用css扩大可点击区域
- 关于XMLSpy工具的使用
- jdbc的代码实现
- Java面试题(一)
- redis数据库介绍和常用操作
- was7环境下 java.lang.ClassNotFoundException: oracle.sql.BLOB
- CentOS7下安装Redis 并且后台运行
- HDU 2089 不要62(暴力)