网站后台用什么浏览器,网站域名做哪个会计科目,php 购物网站开发,建设销售网站一. 使用注解
1. 含义 注解是放在类#xff0c;方法#xff0c;字段#xff0c;参数前的一种特殊“注释”#xff0c;是一种用作标注的“元数据”。
2. 三类注解 1#xff09;由编译器使用的注解#xff0c;不会编译进.class文件#xff0c;编译后扔掉#xff1b;如方法字段参数前的一种特殊“注释”是一种用作标注的“元数据”。
2. 三类注解 1由编译器使用的注解不会编译进.class文件编译后扔掉如Override、SuppressWarnings。 2由工具处理.class文件使用的注解编译进.class文件加载结束后不会加载进JVM被底层库使用无需处理。 3程序运行期读取的注解加载后一直存在于JVM中最常用的注解。
3. 注意 1注解配置参数必须都是常量所以定义注解时就确定了所有参数的值正常每个参数都有默认值如果不设置就使用默认值。 2如果参数名称是value且只有一个参数那么可以省略参数名称。
二. 定义注解
1. 含义 用interface来定义注解注解的参数类似无参方法用default设定一个默认值最好是最常用的参数应命名为value有且只有它时可以省略参数名称。
2. 元注解修饰其他注解 1Target最常用 定义源码被应用于哪些位置。 ElementType.TYPE类或接口或枚举 ElementType.FIELD成员变量字段 ElementType.METHOD方法 ElementType.CONSTRUCTOR构造方法 ElementType.PARAMETER方法参数 ElementType.LOCAL_VARIABLE能修饰局部变量 ElementType.ANNOTATION_TYPE能修饰注解 ElementType.PACKAGE能修饰包 2Retention默认CLASS期间 定义了注解的生命周期 RetentionPolicy.SOURCE编译期间 RetentionPolicy.CLASSclass文件 RetentionPolicy.RUNTIME程序运行时自定义常用 3Documented 是否将注解信息添加到javadoc文档中。 4Repeatable注解可重复不常用 修饰的注解可在同位置使用多个同样的注解。 5Inherited继承 修饰的注解仅针对Target(ElementType.TYPE)类型的类有效子类可继承父类的注解。
3. 如何定义注解 1使用interface定义注解类。 2添加参数、默认值把最常用的参数定义为value()所有参数都尽量设置默认值。 3添加元注解必须设置Targer和RetentionRetention一般设置为RUNTIME。 三. 处理注解
1. 注意 1所有注解都是class都继承自java.lang.annotation.Annotation。 2读取注解要使用反射反射API提供的Annotation实例封装了注解的所有信息。
2. 获取注解 1判断某个注解是否存在于Class、Field、Method或Constructor。 Class.isAnnotationPresent(注解.Class) Field.isAnnotationPresent(注解.Class) Method.isAnnotationPresent(注解.Class) Constructor.isAnnotationPresent(注解.Class) 2用反射API获取注解 Class.getAnnotation(注解.Class) Field.getAnnotation(注解.Class) Method.getAnnotation(注解.Class) Constructor.getAnnotation(注解.Class) 3. 使用注解 定义了注解本身对逻辑程序没有任何影响编写代码来使用注解JVM不会自动给注解添加任何处理逻辑。