2022-08-10 注解和反射的初步了解

本文介绍了Java注解的基本概念,如元注解@Override、@Deprecated、@SuppressWarnings和@Repeatable的作用和用法,并通过示例展示了它们在代码中的应用。同时,文章还探讨了注解的架构,包括Annotation、ElementType和RetentionPolicy。接着,文章阐述了Java反射机制,强调了反射在框架设计中的重要性,并展示了如何在运行时获取类的信息和调用方法。
摘要由CSDN通过智能技术生成

一.注解

1.Java注解概述

注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

2.元注解:

元注解就是用来描述注解的注解。一般使用元注解来限制自定义注解的使用范围、生命周期等等。

而在jdk的中java.lang.annotation包中定义了四个元注解,如下

元注解 描述
@Target 指定被修饰的注解的作用范围
@Retention 指定了被修饰的注解的生命周期
@Documented 指定了被修饰的注解是可以Javadoc等工具文档化
@Inherited 指定了被修饰的注解修饰程序元素的时候是可以被子类继承

jdk的内置注解:作用在代码上的注解

@Override: 标记在成员方法上,用于标识当前方法是重写父类(父接口)方法,编译器在对该方法进行编译时会检查是否符合重写规则,如果不符合,编译报错。
@Deprecated: 用于标记当前类、成员变量、成员方法或者构造方法过时如果开发者调用了被标记为过时的方法,编译器在编译期进行警告。
@SuppressWarnings: 压制警告注解,可放置在类和方法上,该注解的作用是阻止编译器发出某些警告信息。
@safevarargs:JDK7支持忽略任何使用参数为泛型变量的方法或构造器产生的警告

@FunctionalInterface:JDK8开始支持,表示一个接口为函数式接口

@Repeatable:JDK8开始支持,标识某个注解在同一个声明上可以使用多次
 

@Override注解

     这里解释一下@Override注解,在我们的Object基类中有一个方法是toString方法,我们通常在实体类中去重写此方法来达到打印对象信息的效果,这时候也会发现重写的toString方法上方就有一个@Override注解。如下所示:

 于是,我们试图去改变重写后的toString方法名称,将方法名改为toStrings。你会发现在编译期就报错了!如下所示:

image-20200604203645332

那么这说明什么呢?这就说明该方法不是我们重写其父类(Object)的方法。这就是

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值