Java注解原来如此通俗易懂

目录:
1.注解概述
2.注解的作用分析
3.JDK中预定义的一些注解
4.自定义注解
5.元注解
6.解析注解

1.注解概述

Java注解是一系列元数据,它提供数据用来解释程序代码,它是JDK1.5之后版本引入的新的特性,与类,接口,枚举是同一个层次,它可以声明在包,类,字段,方法,局部变量,方法参数等的前面,用来说明程序的注解并非是所解释的代码本身的一部分。注解对于代码的运行效果没有直接影响

2.注解的作用分析

简单了解注解的作用:

注解作用:
1.编译检查:通过代码里标识的注解据让编译器实现基本的检查
2.编写文档:通过代码里标识的注解生成文档【doc文档】
3.代码分析:通过代码标识的注解对代码进行分析【使用反射】

1.编译检查
就比如我们接触过的Override注解:
Override注解作用是检查所注解方法是否重写了父类的方法,如果不是注解的正确使用,编译就不会通过,这就是所谓的注解检查:
在这里插入图片描述

2.编写文档
就是我们在文档注释上加一点注解:

package annotation;
/**
 * 计算两数的和
 * @author itcat
 * @version 1.0
 * @since 1.5
 */
public class AnnoDemo1 {
   
/**
 * 计算两数的和
 * @param a 整数
 * @param b 整数
 */
public int add(int a,int b)
{
   
    return a+b;
}
}

然后如果我们把上边代码编写成文档那么注解的内容将会被翻译成文档中相应的内容
ps:博主不知道为啥不能生成文档所以不能演示生成文档后,文档里边的内容,mmp这文档肯定看不起我
在这里插入图片描述
当然其实只要了解到它会在生成文档中会被翻译成对应信息就行

3.代码分析:通过代码标识的注解对代码进行分析【使用反射】,在下面详细说明

3.JDK预定义的注解

1.@Override:检查被注解的方法是否是继承自父类的
2.@Deprecated:将该注解标注的内容已经过时
3.@Suppresswarnings:压制警告

1.@Override:这个不多讲,上边的演示有
2.@Deprecated
例子:
在这里插入图片描述

我们可以看到当我们选择方法时,show1上是有一个删除线的,而show2是没有的,这就是本注解的作用,虽然注解内容已经过时但是不影响我们对它的调用,java中标注这个注解说明该方法已经存在更好的方法进行替换

3.@Suppresswarnings
例子:
在这里插入图片描述

乍一看好像没啥啊,但是可以把鼠标放在红色叹号下边的黄色横杠上,就会出现提示信息,上图就有一个Method 'show2()' is never used这个警告信息,如果不想要这些警告,那么就可以在你不想要的警告的方法上添加此注解,就会屏蔽。这个注解一般加在类上边的部分,这样就能屏蔽全部的警告

注意使用此注解一般需要加一个参数all,正确格式为@Suppresswarnings("all")

4.自定义注解

1.我们看一个系统自定义注解Override的注解格式分析:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
   
}

格式:

1.元注解:下边会讲
2.public @interface 注解名称{}:一个类似于普通接口的接口,作用和使用规则和普通方法一样

注解本质:

所有注解都会继承得的公共接口,系统默认为你继承java.lang.annotation.Annotation接口

注解属性:

就是注解的接口里边可以定义的成员方法
要求:
1.属性的返回值类型:
(1)基本数据类型
(2)String
(3)注解
(4)以上类型的数组
2.定义属性后:
(1)使用时需要给属性赋值
(2)如果定义属性时使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值
(3)数组赋值的时候使用{}包裹,如果数组只有一个元素{}可以省略,如果只有一个属性需要赋值,并且属性的名称是value那么赋值时value可以直接省略

为了方便理解举个例子(对属性返回值类型的要求):
在这里插入图片描述

很明显void不合适(编译不通过),注意我们把注解里边的方法叫做属性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值