---恢复内容开始---

一、什么是注解

  注解,英文Annotation,它不是程序本身,是对程序的解释,在这里我会想到为什么不能使用注释呢,因为注解是关于程序对信息的处理的流程的一些说明,而且格式也与注释不同,注解是以“@注释名”再程序中存在的,而且其中还可以包含一些参数,注解可以在package、class、method上使用,可以通过反射机制编程实现对这些元数据的访问。

  我们最常见的注解就有一种是内置注解—@override。在重写toString方法时会出现,这种情况下可以更好的理解注解,在有@override时重写的方法只能是pubulic String toString(),方法的名称都是固定的,不能修改,就连大小写都不型,而在去掉@override后可以更改方法的名称。—@Deprecated,这个注释可用于修辞方法、属性、类,表示不鼓励程序员使用这样的元素,或因为太危险,或因为有更好的办法。—@SuppressWarnings,这个可牛了,这个是用来抵制编译时的警告信息!它可以带参数,参数指定抑制的警告种类。

二、自定义注解

  使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

  注意:注解元素必须要有值,我们在定义注解元素的时候经常会使用空字符串、0、-1为默认值。格式是 int id() default -1;

  元注解:元注解的作用就是负责注解其他注解,Java定义了四个标准的meta-annotation类型,分别是@Target、@Retention、@Documented、@Inherited

  @Target:用于表明被注解的注解的注解范围,它的修饰范围是:package包/类、接口、枚举、Annotation类型/类型成员(方法、构造方法、成员变量、枚举值 CONSTRUCTOR-描述构造器,METHOD-描述方法,FIELD-描述作用域)、方法参数(PARAMETER)和本地变量(LOCAL_VARIABLE)

  @Retention:表示需要在什么级别保存该注解,描述的是注解的声明周期。取值有:SOURCE(在源文件中有效)CLASS(在class中保留)RUNTIME(运行时保留,可以被反射机制编码读取)

---恢复内容结束---

一、什么是注解

  注解,英文Annotation,它不是程序本身,是对程序的解释,在这里我会想到为什么不能使用注释呢,因为注解是关于程序对信息的处理的流程的一些说明,而且格式也与注释不同,注解是以“@注释名”再程序中存在的,而且其中还可以包含一些参数,注解可以在package、class、method上使用,可以通过反射机制编程实现对这些元数据的访问。

  我们最常见的注解就有一种是内置注解—@override。在重写toString方法时会出现,这种情况下可以更好的理解注解,在有@override时重写的方法只能是pubulic String toString(),方法的名称都是固定的,不能修改,就连大小写都不型,而在去掉@override后可以更改方法的名称。—@Deprecated,这个注释可用于修辞方法、属性、类,表示不鼓励程序员使用这样的元素,或因为太危险,或因为有更好的办法。—@SuppressWarnings,这个可牛了,这个是用来抵制编译时的警告信息!它可以带参数,参数指定抑制的警告种类。

二、自定义注解

  使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

  注意:注解元素必须要有值,我们在定义注解元素的时候经常会使用空字符串、0、-1为默认值。格式是 int id() default -1;

  元注解:元注解的作用就是负责注解其他注解,Java定义了四个标准的meta-annotation类型,分别是@Target、@Retention、@Documented、@Inherited

  @Target:用于表明被注解的注解的注解范围,它的修饰范围是:package包/类、接口、枚举、Annotation类型/类型成员(方法、构造方法、成员变量、枚举值 CONSTRUCTOR-描述构造器,METHOD-描述方法,FIELD-描述作用域)、方法参数(PARAMETER)和本地变量(LOCAL_VARIABLE)

  @Retention:表示需要在什么级别保存该注解,描述的是注解的声明周期。取值有:SOURCE(在源文件中有效)CLASS(在class中保留)RUNTIME(运行时保留,可以被反射机制编码读取)

三、通过映射

  ORM:对象关系映射,在java中我们学习的是面向对象思想,而用java写程序用数据库存数据,大多数数据库的思想都是面向关系,大多数时候我们需要将类转换成表格,在转换的过程中其实也是一种映射。

注解_Annotation的更多相关文章

  1. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  2. [Spring]IoC容器之进击的注解

    先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...

  3. Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架

    前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直 ...

  4. Android注解使用之注解编译android-apt如何切换到annotationProcessor

    前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...

  5. spring注解源码分析--how does autowired works?

    1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...

  6. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  7. ASP.NET MVC5----常见的数据注解和验证

    只要一直走,慢点又何妨. 在使用MVC模式进行开发时,数据注解是经常使用的(模型之上操作),下面是我看书整理的一些常见的用法. 什么是验证,数据注解 验证 从全局来看,发现逻辑仅是整个验证的很小的一部 ...

  8. 基于注解的bean配置

    基于注解的bean配置,主要是进行applicationContext.xml配置.DAO层类注解.Service层类注解. 1.在applicationContext.xml文件中配置信息如下 &l ...

  9. Spring注解

    AccountController .java Java代码   1.        /** 2.         * 2010-1-23 3.         */ 4.        packag ...

随机推荐

  1. C语言打印杨辉三角(2种方法)

    杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一. ...

  2. SVG路径PATH

    SVG路径PATH 在使用之前建议下个PS或者FLASH玩玩里面的钢笔工具(FLASH里的钢笔工具比PS里的好用) PATH用到的指令: M----(X Y):移动到 Z----(none):关闭路径 ...

  3. 项目配置linux上, 配置文件访问不到

    /** * 读入TXT文件 */public List<String> readFile(String pathName) { List<String> list = new ...

  4. 自动化测试-12.selenium的弹出框处理

    前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt ...

  5. js--变量对象总结

    当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context). 对于每个执行上下文,都有三个重要属性: 变量对象( ...

  6. i3wm 入门

    安装 所用Linux版本为kali-rolling,直接安装 apt install i3 设置为xinit的启动对像 修改 ~/.xserverrc #!/bin/sh exec /usr/bin/ ...

  7. cocos2dx解决中文乱码方法

    使用plist文件,优点方便做多国语言支持~也不用去做编码转换 1.Resource目录下新建text.plist文件,内容格式如下 <?xml version="1.0" ...

  8. Unity打开外部程序exe/Bat文件方案

    Unity调用外部程序/Bat文件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  9. 我的代码-data pulling

    # coding: utf-8 import datetimeimport timefrom sqlalchemy.engine import create_enginefrom sqlalchemy ...

  10. GAN 教程记录

    目标:使G产生的分布sample出来接近D的分布 1.G产生的data是否是database中的图片 a.计算L1 L2相似度 2.GAN与其他生成器相比较,能够生成较为清晰的图片 3.一次itera ...