java的元注解,内置注解,以及自定义注解

1,注解

注解定义

注解英文单词是Annotation,从JDK1.5引入的新技术,可以被其他程序或者是编译器读取。

注解规则

@interface使用是表明该类是一个注解类。
1,会自动继承java.lang.annotation.Annotation接口,格式是public @interface 注解名{具体的内容}
2,在具体内容里面,每一个方法其实就是一个配置参数,没有方法体。
而方法名就是注解的参数名称。返回值类型只能是基本类型,class,String,枚举。

3,在配置参数的时候在方法名后面可以使用default定义默认值。
举个例子:

@test1(age=1) //不对age参数赋值会报错
	public  void method(){

	}

	//定义一个test1注解
	@Target({ElementType.TYPE,ElementType.METHOD}) //需要添加ElementType.METHOD才能使注解作用在方法上
	@Retention(RetentionPolicy.RUNTIME)
	//@interface 后面加的是注解的名称
	@interface  test1{
			//使用了default以后,在使用时不对该注解的的参数进行赋值也不会报错
			String name() default "";
//			Integer age();  报错Integer不是基本数据类型
			int age();
	}

2,元注解

元注解定义

元注解就是注解其他注解的注解。我理解就是你创造一个东西需要工具是吧,元注解就类似工具的作用。
java定义了4个标准的mate-annotation类型,用来提供对其他annotation类型作说明。在java.lang.Annotation包中可以找到。

@Target

用于描述注解作用的范围,是类还是方法还是属性上。
在某个类上写上@Target注解,点击就可以进去下面的源码。
在这里插入图片描述
可以看到 需要一个ElementType类型的数组。于是查看ElementType[]就可以发现 是一个枚举类型。有点自己注解自己的意思。
在这里插入图片描述

@Retention

描述注解的声明周期,在什么级别的时候会起作用,超过就会无效。一般有三个级别source<class<runtime
在这里插入图片描述
RetentionPolicy是一个枚举类,说明我们我们在使用@Retention时要选择一个枚举。英文也表达了三个级别向下包含。
在这里插入图片描述

@Documented

用于说明该注解将被包含在javadoc中,
英文注释表明一切,这个也没啥说的,
在这里插入图片描述

@Inherited

说明子类可以继承父类中的注解。
这个元注解没啥说得啦,根据单词意思就知道了,还有就是人家已经注释了该元注解的作用就是子类可以继承父类的注解。
在这里插入图片描述

3,java常见的内置注解

@Override

定义在java.lang.Override包中,作用于方法上,表示一个方法声明打算重写父类的另一个方法的声明。

@Deprecated

定义在java.lang.Deprecated中,作用于方法,属性,或者类上面。建议程序员不要使用,一般是有更好的选择或者是有危险。

@SuppressWarnings

定义在java.lang.SuppressWarnnings中,作用于方法,类上,效果是预制编译器的警告信息。这个注解需要添加参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值