18 | 注解和反射

1 注解

1.1 应用

  • 注解可以存在于三个位置

保留在Java 文件当中 ;
保留在class 文件当中 ;
在JVM执行过程当中依旧能够获取。

  • 内置注解
  • 自定义注解

通常需要使用反射来获取内容;
使用注解是必须掌握的内容,而开发注解不需要大家在日常工作当中,时常接触。

1.2 开发

  • element Type:指定注解的使用范围

  • Retention Policy: 指定注解存活的位置

  • 声明自定义注解:
    在接口关键字interface之前添加@符号

  • 自定义注解:
    默认情况下,注解只存在于class文件当中的。如果要让该注解在实际开发中,被反射获取,那么我们需要使用元注解:

  1. 什么是原注解,注解注解的注解,使用在注解上的一种注解
  2. @Target,用于指定注解的使用范围,通常需要给定参数Element Type
  3. @Retention:用于指定注解的存活区域,通常需要给定参数:Retention Policy
  4. 可以给注解当中添加属性:

a、声明抽象方法,方法名为属性名,方法返回值为属性类型
b、可以在抽象方法之后,添加default给定默认值,有默认值的属性,可以不必一定给值

  • 常规的内置注解

@Deprecated 过时方法
@Override 标注在重写的方法上,检查该方法是方法是否是重写的方法
@Suppress
Warnings 取消编译器的警告

2 反射

2.1 使用场景

框架开发,框架升级

2.2 开源框架的问题

安全性得不到保障

2.3 什么是反射

常规情况下:一个类的执行过程:是从源文件开始,经过编译,然后加入类加载器当中,然后在执行该程序,属于是预加载,然后在执行。

反射是,程序已经在执行了,在执行过程当中,获取类,类的方法属性等等,然后在组织到当前类的加载器当中,然后动态执行。

2.4 Object

Object用于描述对象的类

2.5 class

1、用户描述类的对象 通过类名获取Class类,会有一个异常,类名不能定位到类,一般是在配置文件当中获取的字符串;
2、通过对象来获取Class类,一般使用在传参的时候,或者参数数据类型不定的时候使用;
3、通过类来获取Class类,一般用于明确类型的参数传递;
4、使用new instance的方法创建的实例,默认实际上是调用的目标类的空参构造;
5、访问不可见成员时,需要指定访问权限。

2.6 Field

用于描述属性

2.7 Method

Method用于描述方法

2.8 Constructor

用于描述构造

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值