java参数注解pam_吃透Java基础十:注解

一、什么是注解

官方定义:

注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分。注解对于代码的运行效果没有直接影响。

注解有许多用处,主要如下:

  • 提供信息给编译器:编译器可以利用注解来探测错误和警告信息。
  • 编译阶段时的处理:软件工具可以用来利用注解信息来生成代码、Html文档或者做其它相应处理。
  • 运行时的处理:某些注解可以在程序运行的时候接受代码的提取

值得注意的是,注解不是代码本身的一部分。

我们通俗一点理解就是:注解就相当于超市里面商品的标签,它不属于商品,它只是为商品做一些解释说明,而注解就是为我们的代码作解释说明,并不属于我们代码本身的部分。

二、注解的使用

JDK中提供的注解*

JDK里面提供的几个注解

  • @Override: java.lang.Override 是一个标记类型注解,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。如果我们使用了这种注解在一个没有覆盖父类方法的方法时,java 编译器将以一个编译错误来警示。
  • @Deprecated:表示该方法已经过时了。(当方法或是类上面有@Deprecated注解时,说明该方法或是类都已经过期不能再用,但不影响以前项目使用,提醒你新替代待的方法或是类。如果程序员不小心使用了它的元素,那么编译器会发出警告信息。)
  • @SuppressWarnings:表示忽略指定警告,比如@SuppressWarnings("Deprecation")
  • @SafeVarargs:参数安全类型注解。它的目的是提醒开发者不要用参数做一些不安全的操作,它的存在会阻止编译器产生 unchecked 这样的警告。它是在 Java 1.7 的版本中加入的。
  • @FunctionalInterface:函数式接口注解,这个是 Java 1.8 版本引入的新特性。

元注解

java.lang.annotation 提供了四种元注解,专门注解其他的注解(在自定义注解的时候,需要使用到元注解)。

  • @Retention:定义该注解的生命周期。

RetentionPolicy.SOURCE:注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。

RetentionPolicy.CLASS:注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。

RetentionPolicy.RUNTIME:注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。

  • @Target:表示该注解用于什么地方。默认值为任何元素,表示该注解用于什么地方。可用的ElementType 参数包括:

ElementType.CONSTRUCTOR: 用于描述构造器。

ElementType.FIELD: 成员变量、对象、属性(包括enum实例)。

ElementType.LOCAL_VARIABLE: 用于描述局部变量。

ElementType.METHOD: 用于描述方法。

ElementType.PACKAGE: 用于描述包。

ElementType.PARAMETER: 用于描述参数。

ElementType.TYPE: 用于描述类、接口(包括注解类型) 或enum声明。

  • @Documented:一个简单的Annotations 标记注解,表示是否将注解信息添加在java 文档中。
  • @Inherited :表示当前注解可以由子注解来继承。
  • @Repeatable:是可重复的意思,Java 1.8 才加进来的,指的是注解的值可以同时取多个。

自定义注解

  • Annotation型定义为@interface,所有的Annotation 会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口。
  • 参数成员只能用public 或默认这两个访问权修饰,可以用default设置默认值。也可以不定义成员。
  • 参数成员只能用基本类型byte、short、char、int、long、float、double、boolean八种基本数据类型和String、Enum、Class、annotations等数据类型,以及这一些类型的数组。
  • 要获取类方法和字段的注解信息,必须通过Java的反射技术来获取 Annotation 对象,因为你除此之外没有别的获取注解对象的方法
f2b768443aded6361ce92f6740cb55a3.png

注解经典运用

运行期利用反射可以获取注解:详情请移步[吃透Java基础六:反射](https://blog.csdn.net/u013277209/article/details/102782208)

注解+反射 在数据库框架方面的应用:

有一张用户表,包含id name age gender 对每一个字段进行检索并打印出Sql语句

1、自定义Table和Column注解

09ba5f0817ac926c295247127c35b056.png

2、编写User类

7350be7c71dabfd0b8c467da7629625b.png

3、利用反射获取注解信息,实现Sql语句查询

945e9a9f6555ade9bc10f05247c94ea0.png

运行输出:

9bb6e16aa0b5dc11cb747c6655a7c692.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

广州计算机操作员培训,汕尾市计算机操作员报名考试时间地址及培训入口

生活习惯越来越多的计算机进入了人们的日常生活,随着计算机价格的逐步便宜,越来越多的家长为自己的孩子购置了计算机,但是计算机目前在我们的日常生活中,却没有扮演一个下面的角色,现在家庭中的计算机一般都是作为娱乐…

go get如何删除_Go 每日一库之 xorm

简介Go 标准库提供的数据库接口database/sql比较底层,使用它来操作数据库非常繁琐,而且容易出错。因而社区开源了不少第三方库,如上一篇文章中的sqlc工具,还有各式各样的 ORM (Object Relational Mapping,对象关系映射…

浮点加法器计算机组成原理,计算机组成原理 第二章运算方法与运算器

第二章运算方法与运算器运算方法:指算术(四则)运算和逻辑运算,在运算器的实现方法,而实现这两种运算的硬设备就是算术逻辑部件ALU(Arithmeticand Logic Unit)或称运算器由于逻辑运算及实现较简单,所以本章主要讨论计算机中算术四则…

python整数预测_时间序列预测全攻略(附带Python代码) | 36大数据

介绍时间序列(简称TS)被认为是分析领域比较少人知道的技能。(我也是几天前才知道它)。但是你一定知道最近的小型编程马拉松就是基于时间序列发展起来的,我参加了这项活动去学习了解决时间序列问题的基本步骤,在这儿我要分享给大家。这绝对能帮助你在编程…

wordpress添加html媒体文件,WordPress“添加媒体”文件时只显示上传到当前文章的附件图片...

最近子凡把很大一部分精力都分散在了泪雪建站的改版和泪雪网的运营中去了,随着泪雪网的定位和内容的新增,网站也需要有很多细节的升级,而在今天就给大家分享一个 WordPress 如何在编辑文章时“添加媒体”中默认只显示上传到本文中的附件的方法…

世界上最大的计算机硬盘,全球我最大 忆捷A600 2TB移动硬盘评测

评测工程师简介:PConline评测工程师:韩松评测工程师点评:移动领域里面的新霸主,为需要安全的人士提供了一个全新的移动理念。集安全性、技术性、容量、兼容性、稳定性、散热性等重要指标于一身。可以说忆捷A600绝对是移动硬盘领域…

tplink连接服务器失败_管家婆财贸双全连接失败,服务器端没有找到加密狗

管家婆财贸双全连接失败,服务器端没有找到加密狗管家婆财贸双全找不到狗判断步骤1、先判断电脑能否识别管家婆财贸双全加密狗我的电脑--右键--属性--硬件--设备管理器--通用串行总线控制器(或人体学接口设备)看有没有这个 SafeNet Inc. USB Key 出现,插上…

2020年秋计算机科学导论,南开大学《主干课1-计算机科学导论》2020秋主干课考试...

试卷总分:100 得分:303 R- k9 d3 ^1 } F一、单选题 (共 10 道试题,共 20 分)- z" x3 C% Z7 V |9 D p5 s1.数字836的基数可能是( )3 D) j2 h- l N OA.2" D# H% r2 b3 ]; d" iB.57 E; n, U4 v# |; L4 k% r4 u- QC.78 x) x" r3 r; y6 A2 oD.10) X3…

两直线平行交叉相乘_人教版初中数学七年级下册 平行线判定2公开课优质课课件教案视频...

平 行 线 的 判 定 一、教材分析1、主要内容及其地位本节的主要内容是平行线的判定公理及两个判定定理,由分析画平行线的过程得知,画平行线实际上就是画相等的同位角,由此得到平行线的判定公理——“同位角相等,两直线平行”&…

高中计算机辗转相除法,高三数学教案:算法案例――辗转相除法

《高三数学教案:算法案例――辗转相除法》由会员分享,可在线阅读,更多相关《高三数学教案:算法案例――辗转相除法(7页珍藏版)》请在人人文库网上搜索。1、算法案例 辗转相除法育才中学潘敏一、教材分析选自苏教版普通高中课程标准…

相关系数矩阵计算_corrplot包:相关性矩阵可视化

今天学习下相关性矩阵的可视化,可以用来可视化相关性矩阵的包有corrplot包、corrgram包、GGally包、ggcorrplot包等,这些包在大部分情况下都可以满足需求。今天先来学习corrplot包的使用,后面几天有空会详细讲解下另外三个包。目 录1. 安装和…

pat根据中序遍历和先序遍历_[leetcode/lintcode 题解] 前序遍历和中序遍历树构造二叉树...

【题目描述】根据前序遍历和中序遍历树构造二叉树.在线评测地址:九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧​www.jiuzhang.com【样例】样例 1:输入:[],[] 输出:{} 解释: 二叉树为空…

计算机员工工资管理系统源代码,C++员工工资管理系统源代码

《C员工工资管理系统源代码》由会员分享,可在线阅读,更多相关《C员工工资管理系统源代码(17页珍藏版)》请在人人文库网上搜索。1、include #include #include #include #include #include using namespace std;#define NULL 0#define LEN sizeof(struct …

计算机专业人才培养模式改革,地方高校计算机科学与技术专业人才培养模式改革与实践...

摘要:本文分析了目前我国地方高等院校计算机专业人才培养现状,以太原科技大学计算机科学与技术专业为例,针对办学指导思想、专业定位、专业特色、专业培养模式及课程体系进行了研究与探讨,提出了“行业特色明显、专业方向细化、实践技能突出、素质教育鲜明”的专业建设指导思想…

java中审核订单流程图_「数据架构」数据流程图:实例-订餐系统

数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示。通过绘制数据流程图,您可以了解由参与系统流程的人员提供并交付给他们的信息、完成流程所需的信息以及需要存储和访问的信息。本文以一个订餐系统为例,对数据流图(DFD)进行了描述和说明。食品订…

太原市中考计算机考试系统,太原中考报名系统

中考报名即将开始,希望大家都能顺利报名,出国留学网小编为大家准备了2016太原中考报名系统,希望对大家有所帮助,更多精彩内容欢迎访问出国留学网中考频道。2016太原中考报名系统【点击查看最新报名系统】延伸阅读:中考…

python求圆柱体的体积_漫谈超球体的体积公式

现实生活中,我们只要掌握圆的周长和面积公式,了解球的表面积和体积公式就够用了,没有什么可以深究的。本篇将带你走进高维度球的表面积和体积公式[1]。  我们生活在三维空间,对更高维度的空间难以构想。笛卡尔说:我思…

ftp 服务器 性能,FTP 服务器性能 测试点

使用ffmpeg转换webm格式安装ffmpeg brew install ffmpeg --with-libvpx --with-libvorbis 如果已经装过 brew reinstall ffmpeg --with-libv ...对于多个列的转行(一个值均匀分布在两个列中),对于个别字段通过取别名,join方式解决。例如,这个表的结构: s…

jsp项目放入宝塔windows环境_商业裂变,之项目技术实战(第八节:宝塔面板介绍)...

一、宝塔简介:宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器&…

es文件浏览器smb服务器,ES文件浏览器怎么连接电脑SMB,可以参考这篇文章

ES文件浏览器是一款多功能的手机文件/程序/进程管理器,可以在手机、电脑、远程和蓝牙间浏览管理文件。是一个功能强大的免费的本地和网络文件管理器和应用程序管理器。ES文件浏览器与电脑进行局域网链接后可以管理电脑的文件,不只是复制,还可…