Java注解的作用,使用,自定义
2017-04-25 23:07
453 查看
注解是什么
注解是描述Java代码的代码,它能够被编译器解析,注解处理工具在运行时也能够解析注解。用来标识代码,提供额外的信息做特殊处理。 比如:@Override public String toString(){ return ""; }
@Override 是一个常用的注解,它标识我们重写了某个方法。
注解的作用
还是@Override注解,Ctrl+左键点击,查看源代码。package java.lang; import java.lang.annotation.*; /** * Indicates that a method declaration is intended to override a * method declaration in a supertype. If a method is annotated with * this annotation type compilers are required to generate an error * message unless at least one of the following conditions hold: * * <ul><li> * The method does override or implement a method declared in a * supertype. * </li><li> * The method has a signature that is override-equivalent to that of * any public method declared in {@linkplain Object}. * </li></ul> * * @author Peter von der Ahé * @author Joshua Bloch * @jls 9.6.1.4 @Override * @since 1.5 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { }
注释的大致意思是当一个方法被这个注解标记的时候要满足:
实现了或者重写了父类的方法
实现或者重写了Object类的方法
Java提供的注解
元注解 在@override的源码中有@Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { }
@Target和@Retention就是元注解。元注解即用来描述注解的注解,只能应用于对方法进行注解。
在JDK源码中注解包内容如图
类之间的关系如图
@Document、@Target、@Retention和@inherrited就是元注解
Documented 当一个注解类型被@Documented元注解所描述时,那么无论在哪里使用这个注解,都会被Javadoc工具文档化
Inherited型是自动继承的。具体解释如下:若一个注解类型被Inherited元注解所修饰,则当用户在一个类声明中查询该注解类型时,若发现这个类声明中不包含这个注解类型,则会自动在这个类的父类中查询相应的注解类型,这个过程会被重复,直到该注解类型被找到或是查找完了Object类还未找到
Retention 我们在上面已经见到个这个元注解,它表示一个注解类型会被保留到什么时候,比如以下代码表示Developer注解会被保留到运行时:
Target 这个元注解说明了被修饰的注解的应用范围,也就是被修饰的注解可以用来注解哪些程序元素.
自定义注解
注解类型通过”@interface“关键字定义的在”注解体“中,所有的方法均没有方法体且只允许public和abstract这两种修饰符号(不加修饰符缺省为public),注解方法不允许有throws子句;
注解方法的返回值只能为以下几种:原始数据类型), String, Class, 枚举类型, 注解和它们的一维数组,可以为方法指定默认返回值。
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) @Retention(RetentionPolicy.SOURCE) public @interface myAnnotation { String[] value();
相关文章推荐
- Java Annotation 注解的介绍和使用 自定义注解
- java自定义注解及注解使用
- Java中的Annotation详解和使用 自定义注解
- java --自定义注解的使用
- JAVA 注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解(完)
- Java注解的几大作用及使用方法详解(完)
- java 注解的几大作用及使用方法详解
- paip.Java Annotation注解的作用and 使用
- java使用自定义注解
- java 注解的几大作用及使用方法详解(完)
- JAVA 注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解
- java 注解的几大作用及使用方法详解(转载)
- Java自定义注解Annotation的使用
- Java注解(自定义方法注解使用及测试)
- Java 注解的几大作用及使用方法详解
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
- [原创]Java使用反射及自定义注解实现对象差异性比较
- Java使用反射、自定义注解注入对象