• 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

    用于描述构造

  • 相关阅读:
    新闻网站封锁AI爬虫 AI与新闻媒体博弈继续
    【完美世界】石昊再借刀斩人,连杀3位真神,2位超级强者结局登场
    Springboot 过滤器、拦截器、全局异常处理
    SpringMVC基础概述
    hwk1:消息队列实现进程之间通信方式代码,现象
    将毫秒数述转为时分秒格式
    yandex的目标设置参考1(针对不同类型的网站)
    利用VB宏设置将多个excel表合并为一个
    简易版的新闻应用
    基于Springboot+Vue的校园在线打印预约系统
  • 原文地址:https://blog.csdn.net/u013916029/article/details/126258167