什么是注解
注解就是Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。
注解使用场景
- 比如:Junit框架的@Test注解可以用在方法上,用来标记这个方法是测试方法,被@Test标记的方法能够被Junit框架执行。
- 再比如:@Override注解可以用在方法上,用来标记这个方法是重写方法,被@Override注解标记的方法能够被IDEA识别进行语法检查。
- 注解不光可以用在方法上,还可以用在类上、变量上、构造器上等位置。
上面我们说的@Test注解、@Overide注解是别人定义好给我们用的,将来如果需要自己去开发框架,就需要我们自己定义注解。
自定义注解
就是自己定义注解。
public @interface 注解名称{
public 属性类型 属性名()default 默认值,
}
比如:现在我们自定义一个MyTest注解,注意在idea新建的时候不是class了,而是Annotation
public @interface MyTest1{
String aaa();//一定要带小括号 前面的public可以不写 默认自动帮你写了
boolean bbb() default true; //default true 表示默认值为true,使用时可以不赋值。
String[] ccc();
}
定义好MyTest注解之后,我们可以使用MyTest注解在类上、方法上等位置做标记。注意使用注解时需要加@符号,如下
@MyTest1(aaa="牛魔王",ccc={
"HTML","Java"})
public class AnnotationTest1{
@MyTest1(aaa="铁扇公主",bbb=false, ccc={
"Python","前端","Java"})
public void test1(){
}
}
注意:注解的属性名如果是value的话,并且只有value没有默认值,使用注解时value名称可以省略。比如现在重新定义一个MyTest2注解
public @interface MyTest2{
String value(); //特殊属性
int age() default 10;
}
定义好MyTest2注解后,再将@MyTest2标记在类上,此时value属性名可以省略,代码如下
@MyTest2("孙悟空") //等价于 @MyTest2(value="孙悟空")
@MyTest1(aaa="牛魔王",ccc={
"HTML","Java"})
public class AnnotationTest1

最低0.47元/天 解锁文章
343

被折叠的 条评论
为什么被折叠?



