2020-11-16-Java注解笔记

注解概述

1.注解,或者又叫做注释,英文单词是annotation
2.注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件
3.如何自定义注解呢?语法格式?
	[修饰符列表] @interface 注解类型名{
	} 
4.注解怎么用,用在什么地方?
	第一:注解使用时的语法格式是:
		@注解类型名
	第二:注解可以出现在类上,属性上,方法上,变量上等...
	注解还可以出现在注解类型上
	总而言之,万物皆可被注解!
5.注解里的属性
	1.定义
		String name();
	2.在使用注解时,如果注解有属性,那么必须赋值,除非该属性有默认值
		@MyAnnotation(name="sad");
	3.给属性添加默认值
		String name() default "asd";
	4.value属性
		如果一个注解有且只有一个属性叫value,那么这个注解在使用时,value属性名可以不写
		@MyAnnotation("hahah")
	5.属性的类型
		 属性的类型可以是:
		 	byte short int long float double boolean char String Class 枚举类型
		 	以及以上每种数据类型的数组形式
		 当属性的类型是一个数组时
		 	@MyAnnotation(session={"assd","asd","asdasd"})
		 	@MyAnnotation(session=“as”)//数组只有一个属性,大括号可以省略不写

jdk中注解

Deprecated

1.Deprecated这个注解类和方法都能注解
2.Deprecated这个注解是给程序员看的,给程序员提供一个信息。
3.他是一个标识性注解,是给编译器做参考的
4.凡是java中的类或方法被这个注解标注,他们出现的时候中间就会有个横线,表示这个类或方法已经过时,不建议使用。

Override

1.Override这个注解只能注解方法
2.Override这个注解是给编译器做参考的,和运行没有关系
3.他是一个标识性注解,是给编译器做参考的
4.凡是java中的方法带有这个注解的,编译器都会进行编译检查,如果这个方法不是重写父类的方法,
编译器就会报错。

SuppressWarnings

1.指示应该在注释元素(以及包含在盖住适中的所有程序元素)中取消显示指定的编译器警告

元注解

概念

1.元注解是注解注解的注解 ,它是用来标注注解的

常见的元注解

1.Target
	这是一个元注解,用来标注"注解类型"的"注解"
	这个Target注解用来标注"被标注的注解"可以出现在哪些位置上
	
	@Target(ElementType.METHOD):表示"被标注的注解"只能出现在方法上
2.Retention
	这是一个元注解,用来标注"注 解类型"的"注解"
	这个Retention注解用来标注"被标注的注解"最终保存在哪里
	
	@Target(RetentionPolicy.SOURCE):表示"被标注的注解"最终值被保存在java源文件中
	@Target(RetentionPolicy.CLASS):表示"被标注的注解"最终值被保存在class文件中
	@Target(RetentionPolicy.RUNTIME):表示"被标注的注解"最终值被保存在class文件中,并且可以被反射机制查到。

通过反射来获取注解(此注解的Retention注解的value必须是RetentionPolicy.RUNTIME)

获取类的注解

//1.获取类的Class对象
    Class c = Class.forName("com.bjpowernode.test.AnnotationTest");
    if(c.isAnnotationPresent(MyAnnotation.class)){//判断该类是否有这个注解
        //2.有这个对象,获取这个对象的这个注解
        MyAnnotation annotation = (MyAnnotation) c.getAnnotation(MyAnnotation.class);
        //3.获取注解中的内容
        String address = annotation.address();
        //4.输出
        System.out.println(address);
    }else{
        System.out.println("没找到");
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狴犴ys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值