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)或称运算器由于逻辑运算及实现较简单,所以本章主要讨论计算机中算术四则…

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、主要内容及其地位本节的主要内容是平行线的判定公理及两个判定定理,由分析画平行线的过程得知,画平行线实际上就是画相等的同位角,由此得到平行线的判定公理——“同位角相等,两直线平行”&…

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

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

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

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

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

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

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

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

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

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

arm ida 伪代码 安卓 符号表_使用IDA动态调试及ARM指令学习笔记

本文介绍如何用IDA进行动态调试及部分ARM指令的学习。环境:已root的安卓手机一部,IDA pro 6.8,win7系统。下载样本app,并已确认可调试(debuggable true),下文不表:http://pan.baidu.com/s/1jG22HMY一 手机…

糖豆人显示此服务器正在进行游戏,糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼...

原标题:糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼自从糖豆人游戏开放以来,大批玩家涌入,造成糖豆人服务器拥堵,一度出现崩溃。隔三差五就会来一次。玩家正玩得兴起,突然的崩溃让玩家…

js中立即执行函数会预编译吗_面试官:聊聊对Vue.js框架的理解

作者:yacan8https://github.com/yacan8/blog/issues/26本文为一次前端技术分享的演讲稿,所以尽力不贴 Vue.js 的源码,因为贴代码在实际分享中,比较枯燥,效果不佳,而更多的是以图片和文字的形式进行表达。分…

如何卸载服务器的系统,卸载服务器的操作系统

卸载服务器的操作系统 内容精选换一换弹性云服务器卸载磁盘。弹性云服务器状态为stopped时支持系统盘(也就是/dev/sda挂载点)和用户盘的卸载,没有操作系统限制,也不需要在弹性云服务器内部安装vmtools。弹性云服务器状态为active态时有如下约束限制&…

修改了模板文件tpl如何立即生效_Views视图与模板

一、概述用户请求到视图流程:当有人访问我们django项目的时候 例如127.0.0.1:8000/polls/23,django首先到加载mysite.urls模块在mysite.urls中发现有urlpatterns变量,于是在其内按顺序进行匹配。当它匹配上了polls,就到匹配到的po…

vue本地没事放到服务器上无限循环,解决vue中的无限循环问题

项目中遇到了这样一个问题:每一种产品有对应的服务费,每一个商家有多种商品要单独计算每一家的服务费,最后汇总总的服务费用。我直接写了一个方法来计算出每个商家和总的服务费用并return出来。如果不看控制台的话运行是没问题的。但是控制台…

壁式框架内力计算_4种类型剪力墙的计算要点

剪力墙又称抗风墙、抗震墙或结构墙。房屋或构筑物中主要承受风荷载或地震作用引起的水平荷载和竖向荷载(重力)的墙体,防止结构剪切(受剪)破坏。又称抗震墙,一般用钢筋混凝土做成。它分平面剪力墙和筒体剪力墙。平面剪力墙用于钢筋混凝土框架结构、升板结…