培训网站建设课程,网站的排版设计,南平公司做网站,一个app安卓下载注解——概述、自定义注解以及元注解
1.概述
注解#xff08;Annotation#xff09;
就是Java代码里的特殊标记#xff0c;比如#xff1a;Override、Test等#xff0c;作用是让其他程序根据注解信息来决定怎么执行该程序注意#xff1a;注解可以用在类上、构造器上、…注解——概述、自定义注解以及元注解
1.概述
注解Annotation
就是Java代码里的特殊标记比如Override、Test等作用是让其他程序根据注解信息来决定怎么执行该程序注意注解可以用在类上、构造器上、方法上、成员变量上、参数上等位置处
2.自定义注解 就是自己定义注解 public interface 注解名称public 属性类型 属性名() default 默认值;特殊属性名value 如果注解中只有一个value属性使用注解时value名称可以不用写 注解原理 1注解本质是一个接口Java中所有注解都继承了Annotation接口 2注解格式注解(…)本质上就是该注解的一个实现类对象实现了该注解以及Annotation
public interface Anno1 {//基本类型public int a() default 18;//Stringpublic String name(); //没有默认值default可以省略//Classpublic Class clazz() default Anno2.class;//注解public Anno2 anno() default Anno2;//枚举public Season season() default Season.SPRING;//以上类型的一维数组public int[] arr() default {1, 2, 3, 4, 5};public Season[] seasons() default {Season.SPRING, Season.SUMMER};
}//如果属性没有指定默认值使用需要手动指定默认值Anno1中的name没有默认值
Anno1(name tom)
MyAnno(tom)
class Test {}interface Anno2 {}interface MyAnno {//特殊属性名valueString value();
}enum Season {SPRING, SUMMER, AUTUMN, WINTER
}注解中的属性类型基本类型、String、Class、注解、枚举以上类型的一维数组
3.元注解
指的是修饰注解的注解
Target
作用声明被修饰注解能使用的位置
Target(ElementType.TYPE)
TYPE类接口FIELD成员变量METHOD成员方法PARAMETER方法参数COSTRUCTOR构造器LOCAL_VARIABLE局部变量
Retention
作用声明注解的保留周期
Retention(RetentionPolicy.RUNTIME)
SOURCE只作用在源码阶段字节码文件中不存在CLASS默认值保留到字节码文件阶段运行阶段不存在RUNTIME开发常用一直保留到运行阶段
MyAnno
public class Demo {MyAnnoprivate String name;MyAnnopublic void test() {}
}//1、声明被修饰注解的使用位置
Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})//2、声明注解的保留周期查看Test上的元注解
Retention(RetentionPolicy.RUNTIME)
interface MyAnno {}