Java中的注解是JDK5.0之后引入的新技术,注解不是程序的本身,但是可以对程序做出解释,注解还可以被其他的程序读取。
注解与注释的区别是注解会被编译,但注释不会
一:系统的内置注解
1.在方法上面添加@Override
就是一个注解,这个注解说明下面的方法是重写了父类的方法。
2.JAVA中的内置注解:
@Override :说明下面的方法是重写了父类的方法
@Deprecated :说明下面的方法是不建议使用的,是废弃的
@SuppressWarning(all) :将系统的警告信息完全的忽略。
二:自定义注解:
在eclipse新建项目的时候就可在工程上新建一个Annotation从而来自定义一个注解,注解的关键字是@interface,在注解的上面要添加元注解,元注解是用来注解其他注解的,常用的元注解:
@Target:用于描述注解的适用范围:
@Target(value=ElementType.METHOD) //这里意味着注解只能在方法的上面使用,不能放在类的前面,不能修饰类
public @interface MyAnnotion01 {
}
@Target(value={ElementType.METHOD,ElementType.TYPE}) //这里意味着注解既能加在方法的前面也能加在类的前面
public @interface MyAnnotion01 {
}
@Retention 表示需要在什么的级别保存该注释,用于描述注解的生命周期。
参数的取值:SOURCE:在源文件中有效,即源文件保留
CLASS:在Class类文件中有效,即Class保留
RUNTIME:在运行时有效,即运行时Runtime保留
三:在注解中要添加注解的内容,
@Target(value={ElementType.METHOD,ElementType.TYPE}) //这里意味着注解既能加在方法的前面也能加在类的前面
public @interface MyAnnotion01 {
String name() default "";//如果用String来定义属性,在后面一般要加上default ""
int age() default 0;
int id() default -1;
String[] source() default {"计算机组成原理","编译原理","操作系统原理"};
}
使用:
@MyAnnotion01(name="shuwang",age=19) //这里可以指定值,用于其他的程序来使用,当只有一个参数的时候一般只用value来作为属性,并且value是可选的
public void test(){
}
Java中的注解要需要在类的解析中才会有意义。