python 注解annotation_Annotation注解(一)- 基础

2023-11-11

这篇博客,主要讲解关于注解的一些基本知识,包括注解的概念、分类、作用,常见注解的定义及其解析方式等。

Annotation的概念

1. 概念

关于Annotation注解的概念,我们可以看下官方的解释:

Annotations, a form of metadata;

provide data about a program that is not part of the program itself.

Annotations have no direct effect on the operation of the code they annotate

Annotation注解是Java中的一种元数据,它可以往源代码中添加额外的数据,并且对注解的代码无直接影响;包名、类、成员方法、成员属性、参数都可以被注解。

2. 作用

注解可以让我们的代码更加简洁,并且增加代码的复用性,避免冗余代码。

如果细分起来,注解主要有3个作用:

编译时标记:在编译时,通过标记代码,来提示信息、检查错误

编译时处理:在编译时,通过构建代码,来动态生成一些额外的代码、或者Java/XML等文件

运行时处理:在运行时,我们可以动态的获取注解信息

3. 分类

1. 标准Annotation

标准Annotation是指Java自带的Annotation。

eg:@Override[重写]、@Deprecated[不鼓励使用]、@SuppressWarnings[忽略警告]等。

2. 元Annotation

元Annotation是指注解Annotation的Annotation。

eg:@Retention, @Target, @Inherited, @Documented等。

3. 自定义Annotation

我们可以利用元Annotation来自定义一些自己的Annotation。

元Annotation

元Annotation是指注解Annotation的Annotation。

@Documented:Annotation是否会保存到JavaDoc文档中

@Inherited:Annotation是否可以被继承,默认是false

@Target(ElementType[] types):Annotation可以用来注解哪些元素

ElementType:元素类型,比如类、方法、变量、参数等

@Retention(RetentionPolicy ploicy):Annotation的保留策略

RetentionPolicy.SOURCE:Annotation仅保留在java源码中

- 大都为Mark Annotation,做一个警示、校验的作用

RetentionPolicy.CLASS:Annotation保留在java源码、class文件中

- 默认的保留策略,一般配合Processor注解处理器,在构建时动态生成代码

RetentionPolicy.RUNTIME:Annotation保留在java源码、class文件、运行时

- 与CLASS的区别是,这类Annotation在运行时会被加载到JVM中,因此我们可以在程序运行的过程中动态获取到Annotation的相关信息

自定义Annotation

我们先来看一下一个最为基础的Annotation示例代码(这是

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 注解annotation_Annotation注解(一)- 基础 的相关文章

  • python三次样条插值拟合的树行线_R语言:样条回归

    01 解决何种问题 线性回归都知道是用来描述两个变量之间的线性关系 比如身高和体重 自变量身高每增加1个单位 因变量体重就变化多少 但是现实中能用线性回归描述的情况太少了 绝大部分关系都是非线性关系 这个时候就必须用其他回归来拟合了 例如类
  • 面向对象基础2-关键字

    目录 前言 一 private关键字 二 private关键字的使用 三 this关键字 四 public关键字 五 protected 六 default 总结 前言 一 private关键字 private属于私有访问权限 用于修饰类的
  • ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type

    1 问题描述 ubuntu系统中安装好anaconda后 又继而安装了ROS 并通过命令 pip install opencv python 安装opencv的情况下 此时安装的opencv python包是存放在anaconda下的 而在
  • Linux中的一些指令及./详解

    在 Linux 中有许多常见的指令用于执行各种任务 以下是一些常见的 Linux 指令及其用法的总结 ls 列出目录中的文件和子目录 用法 ls 选项 目录 cd 改变当前工作目录 用法 cd 目录 pwd 显示当前工作目录的路径 用法 p
  • js逆向案例三

    目录 零 概述 一 请求参数 Cookie Referer校验 二 参数响应加密解密AES DES RSA 三 其它js混淆 1 案例7 百变ip eval 2 案例8 聚合图床 sojson v6 3 案例9 SH行政处罚 sojson
  • varest插件使用

  • 数据结构学习——顺序栈和链式栈的简单实现和解析(C语言版)

    数据结构 栈的简单解析和实现 一 概念 二 入栈 push 三 出栈 pop 四 顺序栈简单实现 1 进栈操作 2 出栈操作 一 概念 本篇所讲解的栈和队列属于逻辑结构上的划分 逻辑结构分为线性结构 非线性结构 线性结构 有且仅有一个开始节
  • GD32E230芯片无法识别

    GD32E230芯片无法识别 GD32E230板子回来后 开始接上jlink烧录 但是板子第一次能烧录然后第二次就不行的了 换了好几个板子都是 搞了好几个小时 整个人都快崩溃了 后面也是经过不断的尝试 终于搞好了 总结了一下 主要要注意的问
  • Qt的connect槽函数

    一 connect 函数的不同参数形式 以及其区别 优略 除2 未知 之外 总体分为三种形式 1 3信号和槽转为字符串形参的connect函数 4 5 6 7 8信号和槽转为可调用对象的connect函数 9转到槽函数 1 将信号连接到另一
  • 视觉算法工程师面试问题集锦,从基础到进阶,会介绍细节,持续更新中......

    引言 简历上写项目的流程 项目背景是什么 应用场景在什么地方 目的是什么 创造了什么价值 你做了什么事情 遇到困难时 又是怎么解决的 面试需要准备的内容 一 项目描述与项目细节提问 主要描述项目背景 项目实现的功能与方法流程等 面试官会针对
  • 基于STM32的OLED屏显示AHT20采集的温湿度数据

    文章目录 一 实现温湿度数据采集并通过串口显示 二 实现将温湿度采集数据显示到OLED屏 1 代码下载 2 部分代码的编写 3 编译并烧录 4 运行结果 三 小结 四 参考链接 本实验使用的工具 STM32野火mini开发板 AHT20温湿
  • mysql没有写入权限_解决Errcode: 13——mysql写文件权限问题

    mysql没有写入权限 解决Errcode 13 mysql写文件权限问题 一 问题 二 权限错误 Errcode 13 解决方法 三 原理 一 问题 在数据库中select into outfile home mysql data sql
  • Three.js入门之做一个简单的3D场景内添加标点的功能

    什么是Three js 百度百科上是这么说的 Three js是JavaScript编写的WebGL第三方库 提供了非常多的3D显示功能 运行在浏览器中的 3D 引擎 你可以用它创建各种三维场景 包括了摄影机 光影 材质等各种对象 你可以在
  • 数据结构第一次上机 第一章

    数据结构第一次上机 第一章 实验题2 常见算法时间函数的增长趋势分析 目的 理解常见算法时间函数的增长情况 内容 编写一个程序exp1 2 cpp 对于1 n的每个整数n 输出log2 n n Alt 41420出根号 n nlog2 n
  • 20050621:松一口气

    今天把业务日志的数据 恢复 上去了 不管怎么样 X姐放了一罐椰奶在我桌子上 我猜大概不会收到投诉了 因为这事情她也有责任 从某种意义上说是我帮她 摆平 了 但是下午X姐的本性又露出来了 不停的冒一些点子出来 客户总是这样 喜欢出些点子 并暗
  • ARTS挑战打卡第十周

    Algorithm 一周至少一道算法题 Review 阅读并点评至少一篇英文技术文章 Tip 学习至少一个技术技巧 总结和归纳在日常工作中所遇到的知识点 Share 分享一篇有观点和思考的技术文章 01 Algorthm https lee
  • 什么是面向对象

    面向对象 定义 面向对象 Object Oriented 是软件开发方法 一种编程范式 对象来自某一个类 同时又给类赋值而实例化 面向对象编程中执行一个功能的代码叫方法 method 举例 作为团队负责人 分管好各个部门的负责人就行 不需要
  • 【TensorFlow】激活函数(Activation Functions)原理解析(十二)

    神经网络结构的输出为所有输入的加权和 这导致整个神经网络是一个线性模型 如果将每一个神经元的输出通过一个非线性函数 那么整个神经网络的模型也就不再是线性的了 使得神经网络可以更好地解决较为复杂的问题 这个非线性函数也就是激活函数 神经网络中
  • elementUI一条el-form-item控制两个必填项

    实现效果 申请日期是日期跟时段拼接的

随机推荐

  • Qt 文件操作

    文件操作是应用程序必不可少的部分 Qt 作为一个通用开发库 提供了跨平台的文件操作能力 Qt5 新增加了一个QFileDevice类 途中所涉及的类及其用途简要说明如下 QFlie 访问本地文件或者嵌入资源 QTemporaryFile 创
  • 动态规划之在二叉树中使用DP

    二叉树染色 题目描述 文章目录 二叉树染色 题目描述 详细思路 个人走的弯路 可略 正确思路 代码实现 传送门 小扣有一个根结点为 root 的二叉树模型 初始所有结点均为白色 可以用蓝色染料给模型结点染色 模型的每个结点有一个 val 价
  • Python爬虫(一):学习路线

    Python爬虫一 学习路线 前言 打铁还需自身硬 前置要求 掌握Python基础知识 知识点 案例 为驱动 第一阶段 爬虫核心 爬虫的前导知识 爬虫网络请求模块 uellib requests 数据解析 正则 xpath bas4 第二阶
  • CentOS6.5菜鸟之旅:文件权限详解

    一 前言 Linux下所有资源 设备均被视作文件来操作 而文件权限则是决定用户可各文件操作的范围 无论是平时使用Linux 还是写程序均涉及这方面 以下为个人学习的整理 供以后查阅 二 三种权限 1 普通权限 权限 文件 目录 r 读权限
  • 深度学习下的医学图像分析

    转 https www leiphone com news 201706 xwSoWmhNgkn34iGS html https www leiphone com news 201706 UvZxrlbedfT7Meid html http
  • 编译器与平台相关性

    每种处理器都可能会有自己的汇编语言编译器 而对于同一款处理器来说 针对不同的平台 比如 Windows 和 Linux 也会有不同版本的汇编语言编译器 理论上 不管用的是什么操作系统 Windows 也好 DOS 也好 Linux 也好 只
  • Ansible 介绍安装及其使用(基础)

    Ansible 介绍安装及其使用 基础 1 介绍 Ansible 是一个 IT 自动化工具 它能配置系统 部署软件 编排更复杂的 IT 任务 如连续部署或零停机时间滚动更新 Ansible 用 Python 编写 尽管市面上已经有很多可供选
  • uni-app h5公众号 上传多张图片问题

    因uni app的api不支持安卓手机上传多张图片所以要单独引入用到jssdk uni app的底层不是jssdk 第一步 引入jssdk npm i weixin js sdk 文档 https developers weixin qq
  • 【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机

    目录 1 电机为什么需要驱动板呢 为什么不能用控制器直接控制电机呢 2 H桥电路介绍 3 L298N原理介绍 4 实物接线图 5 CUBEMX配置 6 代码 7 演示视频 L298N是常用来驱动小型直流有刷电机 两个 和步进电机 一个 的电
  • 求开发代码,ESP32 网络收音机、网络对讲机(使用蓝牙耳机输出输入)

    参考链接 ESP32S2小项目 FM 网络时钟 电台 Arduino开发环境 哔哩哔哩 https www eefocus com circuit 1180016 html https www eefocus com circuit 118
  • 基于ASP的反垃圾邮件管理系统的设计与实现

    随着Internet的迅速普及 电子邮件以其快捷 方便 低成本的特点逐渐成为人们进行信息交流的主要媒介之一 但是随之而来的垃圾邮件也越来越泛滥 垃圾邮件占用了有限的存储 计算和网络资源 耗费了用户大量的处理时间 影响和干扰了用户的正常工作
  • Python 数据文件与网络数据序列化存储详解

    1 ETL简介 大部分可用数据都是存放于文本文件中的 这些数据可以是非结构化文本 如一篇推文或文学作品 也可以是比较结构化的数据 其每一行都是一条记录 多个字段之间由特殊字符分隔 如逗号 制表符或管道符号 文本文件有可能会很大 一个数据集可
  • Oracle绑定执行计划

    Oracle绑定执行计划 在Oracle中时长会出现一直运行正常的SQL突然运行的很慢 检查发现执行计划发生了改变 这时候就需要绑定执行计划 在Oracle 10G以后的版本中可以使用SQL profile或SPM 11g以后 来绑定执行计
  • LaTeX公式保姆级教程

    文章目录 希腊字母 上下标 直立与斜体 分式 根式 普通运算符 函数 大型运算符 标注符号 向量 平均值等 箭头 括号与定界符 多行公式 大括号 矩阵 实例仅供参考 希腊字母 pi pi delta
  • Loadrunner11.0安装与简单使用

    Loadrunner下载 https pan baidu com s 1TtBlfp9W7FM8MVjmxa5Irw 提取码 96d0 1 解压loadrunner与破解包 2 打开文件夹运行setup exe 3 点击loadrunner
  • 【华为OD机试真题 Python】英文句子倒序

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • hive报错:Call from hostname/127.0.1.1 to localhost:9000 failed on connection exception.主节点9000端口拒绝访问.

    1 美图 2 背景 启动hadoop base lcc lcc hadoop 2 7 4 sh sbin start all sh This script is Deprecated Instead use start dfs sh and
  • windows server 2012 r2关于vmtools安装失败以及KB2919355安装

    windows server 2012 r2关于vmtools安装失败以及KB2919355安装 前言 VMware workstation15安装windows server 2012 r2 安装不了vmtools 解决方法 1 安装低版
  • OpenCV中QR二维码的生成与识别(CIS摄像头解析)

    1 QR概述 QR Quick Response 属于二维条码的一种 意思是快速响应的意思 QR码不仅信息容量大 可靠性高 成本低 还可表示汉字及图像等多种文字信息 其保密防伪性强而且使用非常方便 更重要的是QR码这项技术是开源的 在移动支
  • python 注解annotation_Annotation注解(一)- 基础

    这篇博客 主要讲解关于注解的一些基本知识 包括注解的概念 分类 作用 常见注解的定义及其解析方式等 Annotation的概念 1 概念 关于Annotation注解的概念 我们可以看下官方的解释 Annotations a form of