欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习之注解Annotation

程序员文章站 2022-03-20 18:04:35
...
Annotation,不是程序本身,可以对程序作出解释,可以被其他程序读取(比如:编译器等)。注解信息处理流程,是注解和注释的重大区别。
Annotation的格式--注解是以“@注释名”,在代码中存在的,是可以添加一些参数值。比如以下几个内置注解:
@Override
--定义在java.lang.Override中,此注解只适用于修辞方法,表示声明打算重写超类中的另一个方法声明。
@Deprecated
--定义在java.lang.Deprecated中,此注解可用于修辞方法、属性、类,表示不鼓励程序员使用这样的元素,通常因为它危险或者存在更好的选择。
简单的重写和抑制警告
public class Demo {
	
	@Override
	public String toString() {
		return "";
	}
	
	@SuppressWarnings("all")
	public static void test() {
		List list = new ArrayList();
		List list2 = new ArrayList();
	}
}
  我们也可以自定义注解:1.使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口 2.格式:public @interface 注解名{定义体},其中每一个方法实际上是声明一个配置参数,方法的名称就是参数的名称,返回值类型 就是参数的类型(返回值类型只能是基本类型、Class、String、enum),可以通过default来声明参数的默认值。在自定义注解之前,我们还需要了解元注解,元注解的作用是负责注解其他注解。比如@Target--用于描述注解的作用范围、@Retention--表示需要什么级别保存该注释信息,用于描述注解的生命周期(SOURCE-在源文件中有效,ClASS-在Class文件中有效,RUNTIME-在运行时有效)。
//自定义注解 @Target作用范围 @Retention保存级别
@Target(value= {ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
	
	String studentName() default ""; //注解元素必须要有值
	int age() default 0;
	int id() default -1; //表示不存在
	String[] schools() default {"清华大学",“北京大学”};
}

相关标签: java