首页 / JAVA / Javase——注解
Javase——注解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javase——注解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2426字,纯文字阅读大概需要4分钟。
内容图文
![Javase——注解](/upload/InfoBanner/zyjiaocheng/712/0869a12dd05d489c9ed4c587295de150.jpg)
注解:是一种特殊的注释,可以被编译器javac VM识别的注释
常见的三种注解类型
@Override 检查重写父类方法
@Deprecated 标识方法果实
@SupressWarnings({"警告类型1"}) 取消编译器经过
元注解 :约束注解的功能
共有四个:
@Retention() 指定注解使用生命周期
@Target() 指定注解使用的范围
@Documentted() 指定被修饰的注解将被javadoc工具提取成文档
@Inherited() 用于指定被@Inherited修饰的注解具有继承性
//指定注解使用的范围
@Target({ElementType.TYPE,ElementType.FIELD})
注意:当注解未指定Target值时,默认支持全部ElementType类型
ElementType 枚举类型
TYPE // 适用于class interface enum
FIELD // 适用 属性
METHOD // 适用 方法
PARAMETER//使用方法
CONSTRUCTOR//适用构造器
LOCAL_VARIABLE//适用于局部变量
ANNOTATION_TYPE//使用注解型态
PACKAGE//适用于包
//关于ElementType的源码
public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */
TYPE,//修饰类
/** Field declaration (includes enum constants) */
FIELD,//修饰属性
/** Method declaration */
METHOD,//修饰方法
/** Formal parameter declaration */
PARAMETER,//修饰形参
/** Constructor declaration */
CONSTRUCTOR,//修饰构造器
/** Local variable declaration */
LOCAL_VARIABLE,//修饰局部变量
/** Annotation type declaration */
ANNOTATION_TYPE,//
/** Package declaration */
PACKAGE,//修饰包
/**
* Type parameter declaration
*
* @since 1.8
*/
TYPE_PARAMETER,//成员变量
/**
* Use of a type
*
* @since 1.8
*/
TYPE_USE
}
//指定注解使用的声明周期
@Retention(RetentionPolicy.RUNTIME)
默认是RetentionPolicy.CLASS
RetentionPolicy 枚举类型
//RetentionPolicy源码如下
public enum RetentionPolicy {
/**
* Annotations are to be discarded by the compiler.
*/
SOURCE,//不能加载到编译器中
/**
* Annotations are to be recorded in the class file by the compiler
* but need not be retained by the VM at run time. This is the default
* behavior.
*/
CLASS,//可以被加载到字节码文件中
/**
* Annotations are to be recorded in the class file by the compiler and
* retained by the VM at run time, so they may be read reflectively.
*
* @see java.lang.reflect.AnnotatedElement
*/
RUNTIME//可以加载到字节码文件中,也能被VM读取,也就是运行时,可以访问注解信息
}
自定义注解
自定义注解及使用如下:
@Target({ElementType.TYPE,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
int num() default 10;
String value() default "aa";
}
@MyAnnotation
class Student{
@MyAnnotation
private int id;
}
public class AnnotationTest {
}
内容总结
以上是互联网集市为您收集整理的Javase——注解全部内容,希望文章能够帮你解决Javase——注解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。