------- 物联云培训、java培训、期待与您交流! ----------
1.概述:注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记
标记可以加在包、类、字段、方法、方法参数,以及局部变量上等等。
格式:@注解类名()。如果有属性,则在括号中加上属性名(可省略)和属性值。
2.java中三种最基本的注解:
@SuppressWarning(”deprecation”)--->用于提示编译时的警告 源程序
@Deprecated--->是用于提示方法已过时 运行时
假定之前的某个类升级了,其中的某个方法已经过时了,不能够将过时的方法删除,
@Override--->提示覆盖父类方法 源程序看的
可对自己类中的方法判断是否是正确的覆盖了父类的方法
3.注释的应用
1、定义格式:@interface 名称{statement}
2、判断一个类中是否加注解了:用这个isAnnotationPresent();方法
例如:AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class);
3、注解的生命周期:Java源文件àclass文件-à内存中的字节码
4、获得这个注解:用getAnnotation()这个方法
例如:ItcastAnnotationannotation =(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
5、定义一个注解:
@Retention(RetentionPolicy.RUNTIME)//表示让它在运行阶段有
@Target(ElementType.METHOD,ElementType.TYPE)//表示把这个注解写到方法上,如果你想要在类上也可以,就写上ElementType.TYPE
public@interface ItcastAnnotation {
String color();
String value();
int[]ArrayAttr();//数组类型的
EnumTest.TrafficLampLamp();defaultEnumTest.TrafficLamp.RDE//定义枚举类型的
MetaAnnotationannotationAttr()default @MetaAnnotation("gdgfd");
//定义一个注解类型的
}
//定义了一个注解
public @interface MetaAnnotation {
Stringvalue();
}
注意:定义注解内的属性的类型只能是八大基本数据类型、String、Class、枚举、注解、及其相对应的数组。
6、在我的程序中应用我自己定义好的注解
例如:
@ItcastAnnotation
(color=”red”,value=”dsf”,ArrayAttr={1,3,4},annotationAttr=@MetaAnnotation("fdvgd"))//设置属性值
publicclass AnnotationTest {
publicstatic void main(String[] args)
{
}
}
注意:如果只有一个vablue属性需要设置,可以省略value。例如:@ItcastAnnotation(“dsf”);
如果你想要省略value,可以把color设置成default。例如:
String color();default “red”;
如果数组只有一个值,可以把大括号省略。
7.对应用的类进行反射操作的类:
这里把这个类放在了上面的类中了
8.元注解:注解的注解
9.为注解增加属性:
注解相当于胸牌,属性实际上就是在胸牌上添加一些属性,比如说添加个颜色。
总结:注解就是给相应的类、成员函数、成员变量、局部变量等添加标记。注解的作用就是检验编码中的错误。