java注解
来源:互联网 发布:如何开淘宝实体店 编辑:程序博客网 时间:2024/05/17 00:15
java提供了一种原程序的元素关联人和信息和人和元数据的途径和方法,那就是注解。
一、java中的常见注解:
1、JDK自带注解 @Override 表明当前类实现自一个接口,这个注解表明当前方法必须是实现的接口的实现版本 @Deprecated 表明当前表示的方法已经过时,调用该方法的时候出现横线,说明该方法过时了 @Suppvisewarnings 表明当前方法中某些代码忽略某些警告2、常见第三方注解 Spring @Autowired @Service @Repository Mybatis @InsertProvider @UpdateProvider @Options
二、java的注解分类:
1、按照运行机制分类 源码注解 注解只是在源码中存在,编译成.class时就不存在 编译注解 源码和.class中都存在(JDK自带的注解) 运行注解 在运行阶段还会起作用(@Autowired)2、按照来源分 来自JDK的注解 来自第三方注解 自定义注解3、元注解 给注解定义注解
三、java自定义注解:
@Target({ElementTyoe.METHOD,ElementType.Type}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface Description{ String desc(); String author(); int age() default 18; }
语法解析: 1、使用@interface关键字来定义注解 2、成员以无参无异常方式声明 3、可以给成员指定一个默认值 4、成员类型是受限的,合法的类型包括原始类型及String,Class,Annotation,Enumeration 5、如果注解只有一个成员,则成员名必须取名为value(),当然可以不需要这么做,这只是一种规定。在使用时可以忽略成员名和赋值号(=) 6、注解类可以没有成员,没有成员的注解称为标识注解 7、@Target定义作用位置,可以同时声明多个作用位置(几乎涵盖了类所有的地方)并不存在包含关系,是什么作用位置,那么就只能作用这一个位置 8、@Retention定义声明周期(可选值为source(只在源码显示)、class(编译时会记录到class中,运行时忽略)、runtime(运行时显示)) 9、@Inherited是可以允许子类继承(并且只会继承这个类上面的注解,方法上的注解不会被继承) 10、使用自定义注解 使用注解的语法:@<注解名>(<成员名1>=<成员值1>,<成员名1>=<成员值1>,……)
四、解析注解
概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制层序运行的逻辑1、使用类加载器加载类2、找到类上面的注解(先使用isAnnotationPresent(注解名)判断是否有注解)3、拿到注解实例(getAnnotation(注解名))(可以使用注解实例.value()来获取该注解的值,也就是该注解括号中的内容)4、找到方法上的注解
阅读全文
0 1
- Java注解-自定义注解
- Java注解----自定义注解
- Java注解自定义注解
- Java注解--四种元注解
- Java注解-三种內建注解
- 【Java】【注解】自定义注解
- java注解
- java注解
- java注解
- java 注解
- Java注解
- java 注解
- Java 注解
- Java注解
- java 注解
- JAVA注解
- Java注解
- Java注解
- 【cocos2d】使用 shader
- poj 3734 Blocks 矩阵乘法优化dp
- 10月25日云栖精选夜读:全世界都在关注中国企业的互联网架构?云栖大会道出了真相
- 【java】手动释放资源问题
- GOJ 1052
- java注解
- 栈基本操作
- MMU
- 分布式架构的演进过程
- 518
- 在 Android N 预览版中使用 Java 8 的新特性
- jquery $().each和$.each()使用
- JAVA课程3 输出100内的素素
- 计算机网络-6