Java基础__06.注解和反射
注解
什么是注解?
1、注解:annocation,是从JDK5.0开始引进入的新技术。
2、注解的作用:
- 不是程序本身,可以对程序做出解释,这一点和注释一样;
- 可以被其他程序读取,这点是和注释的区别。
3、注解的格式:@注释名 ,还可以添加一些参数值。
4、注解的使用地方:注解可以附加在package、class、method、field等上面,相当于给它们加一些额外的信息,我们可以通过反射机制,实现对这些元数据的访问。
内置注解
内置注解,有@Override、@Deprecated和@SuppressWarning。
- @Override:此注解只适用于修饰方法,表示一个方法声明打算重写超类中的方法声明。
- @Deprecated:此注解可以修饰方法、属性和类,表示不推荐使用这样的元素。通常是因为它很危险或者有更好的选择。
- @SuppressWarning:用来抑制编译时的警告信息。它和前2个不同,该注解需要添加参数才能正常使用,参数有以下几种:
- @SuppressWarning("all") // 省略了 value =
- @SuppressWarning("unchecked")
- @SuppressWarning("value" = {"unchecked","deprecation"})
元注解
元注解:即注解的注解,负责对注解进行注解和说明,共4个标准的元注解类型,即@Target、@Retention、@Documented和@Inherited。
- @Target:描述注解的使用范围;
- @Retention:表示需要在什么级别保存该注解信息,用于描述注解的生命周期;共有三种级别:(Source<Class<Runtime);
- @Documented:该注解会生成在javadoc中。
- @Inherited:说明子类可以继承父类中的该注解。
自定义注解
自定义注解的格式:public @interface 注解名{注解体}
反射
Java基础__06.注解和反射的更多相关文章
- Java基础篇——注解和反射
注解 注解Annotation可以被其他程序(编译器)读取,常见的有@override 内置注解 @Override 适用于修饰方法,表明重写父类中的一个方法 @Deprecated 用于修饰类.方法 ...
- Java利用自定义注解、反射实现简单BaseDao
在常见的ORM框架中,大都提供了使用注解方式来实现entity与数据库的映射,这里简单地使用自定义注解与反射来生成可执行的sql语句. 这是整体的目录结构,本来是为复习注解建立的项目^.^ 好的,首先 ...
- 【Java】利用注解和反射实现一个"低配版"的依赖注入
在Spring中,我们可以通过 @Autowired注解的方式为一个方法中注入参数,那么这种方法背后到底发生了什么呢,这篇文章将讲述如何用Java的注解和反射实现一个“低配版”的依赖注入. 下面是我们 ...
- Java基础教程——注解
注解 JDK 5开始,Java支持注解. 注解,Annotation,是一种代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取并执行,而且不改变原有的逻辑. 注解可以用于:生成文档.编译检查. ...
- Java学习笔记--注解和反射
注解和反射 1. 注解 注解作用: 对程序做出解释 被其他程序读取 注解格式: @注释名,还可以添加一些参数值,例如@SuppressWarnings(value="unchecked&qu ...
- java基础第12期——反射、注解
一. 反射 反射: 将类的各个组成部分封装为其他对象. 1.1 获取class对象的方式 Class.forName("全类名"): 将字节码文件加载进内存,返回class对象 多 ...
- JAVA基础 (二)反射 深入解析反射机制
在谈论到反射这个问题时,你是否有例如以下疑问? 不管是在.NET还是Java中反射的原理和机制是一样的,理解了一种还有一种就能够迎刃而解,想要理解反射首先须要了解底层的一些概念和执行.理解了反射有助于 ...
- JAVA基础知识之JVM-——通过反射查看类信息
Class实例 当类被加载之后,JVM中就会生成一个Class实例,通过这个实例就可以访问JVM中的这个类.有三种方式可以获取Class对象 使用Class的静态方法forName(完整包名) 调用类 ...
- 【转载】JAVA基础:注解
原文:https://www.cnblogs.com/xdp-gacl/p/3622275.html#undefined 一.认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的 ...
- java基础篇---注解(Annotation)
一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关 ...
随机推荐
- 使用JsonTextReader提高Json.NET反序列化的性能
一.碰到的问题 在服务器的文件系统上有一个业务生成的BigTable.json文件,其可能包含的JSON字符串很大,同时里边的集合会包含很多的记录:我们使用以下的代码来反序列化,虽然使用了异步的Rea ...
- 代码随想录算法训练营day24 | leetcode 77. 组合
基础知识 回溯法解决的问题都可以抽象为树形结构,集合的大小就构成了树的宽度,递归的深度构成的树的深度 void backtracking(参数) { if (终止条件) { 存放结果; return; ...
- Android:ViewModel
什么是 ViewModel ViewModel 旨在以注重生命周期的方式存储和管理界面相关数据.ViewModel 让数据可在发生屏幕旋转等配置更改后继续留存. 上面一段话是截取自官方文档对 View ...
- Python Socket 基础多用户编程
简介 写下这篇小记的原因是想记录一下自己学习Python Socket编程的心路历程.之前在中专的时间学过一些基础的Socket编程,知道了一些比较基础的内容比如基础的socket.bind()类 ...
- SystemVerilog Tutorial
来自网站 1.网站说明-tutorial This SystemVerilog tutorial is written to help engineers with background in Ver ...
- Mybatis-Plus 之BaseMapper 方法详解
package com.itheima.dao; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomido ...
- B站【挽救小白第一季】前端代码记录笔记
1. 新建工程命令: $ vue init mpvue/mpvue-quickstart my-project 参考mpvue官方快速入门:http://mpvue.com/mpvue/quickst ...
- 464. 我能赢吗 (Medium)
问题描述 464. 我能赢吗 (Medium) 在 "100 game" 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和 达到或超过 100 ...
- 实验五Elasticsearch+Kibana展示爬虫数据
安装elasticsearch-rtf Elasticsearch-rtf相比于elasticsearch而言多加了一些插件,因此我们选择安装Elasticsearch-rtf是一个不错的选择.在安装 ...
- 如何利用fooview实现钉钉自动打卡
我们平常遇到需要钉钉打卡的那种公司,经常要抢时间不敢晚起,有的公司还要扣钱,这样就很难受.本文教你一种行之有效的办法实现钉钉自动打卡. 有些人可能会用什么虚拟定位之类的工具,但是这种是很容易被钉钉发现 ...