编程思想 -- 第20章 -- 注解

六眼飞鱼酱① 提交于 2019-12-13 22:02:49

注解
    注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据。
    注解在一定程度上把元数据与源代码文件结合在一起,而不是保存在外部文档中这一大的趋势之下所催生的。同时,注解也是对来自像C#之类的其他语言对Java造成的语言特性塔里所作出的一种回应。
    注解可以提供用来完整描述程序所需要的信息,而这些信息是无法用Java来表达的。注解可以使我们能够以将由比编译器来测试和验证的格式,存储有关程序有关的额外信息。注解的优点:更加干净易读的代码以及编译器类型检查。
    三种标准注解:@Override 重写;@Deprecated : 发出警告;@SuppressWarnings 忽略警告
    
一、基本语法
    注解的语法比较简单,除了@符号的使用外,它基本与java固有的语法一致。注解并不做任何事情,但是编译器要确保在其结构路径上必须有注解的定义。
    注解的定义看起来很像接口的定义,事实上,注解也会编译成class文件。定义注解时需要一些 元注解,@Target用来定义注解用于什么地方,@Retctetion用来定义注解在哪一个级别可用,在源代码中(Resource),类(Class)或者运行(Runtime)
    没有元素的注解称为标记注解。注解的元素开起来就像接口的方法,唯一的区别是你可以为其指定默认值。
    java目前只内置了三种标准注解,以及始四种元注解。元注解专职负责注解其他注解。

    
二、编写注解处理器
    注解使用的过程中,很重要的一个部分就是创建与使用注解处理器。
    注解可以使用的类型:所有基本类型,String,Class,enum,Annotation,以上类型的数组。如果使用其它类型,编译器会报错,也不允许使用任何包装类型。
    元素不能有不确定的值,元素要么必须有默认值,要么在使用注解时提供元素的值。
    注解不支持继承,不能使用关键字extends来继承某个@interface。
    
三、使用apt处理注释
    注解工具apt是sun为了帮助注解的处理过程而提供的工具。apt被设计为操作java源文件,而不是编译后的类。
    
四、用观察者模式用于apt    
    对一个注解进行分析,我们仍要做大量复杂的工作,处理注解的真实过程可能会非常复杂。当我们有更多的注解和更多的处理器时,为了防止复杂性迅速攀升,mirrot API提供了对访问者设计模式的支持。
    
五、基于注解的单元测试
    单元测试是对类中的每个方法提供一个或朵儿测试的一种实践,其目的是为了有规律地测试一个类的各个部分是否具备正确的行为。在Java中,最著名的单元测试工具就是JUnit。
    
六、总结
    注解引入Java提供了一种结构化的,并且具有类型检查能力的新途径,从而使得程序员能够为代码加入元数据,而不会导致代码杂乱且难以阅读。使用注解能够帮助我们避免编写累赘的部署描述文件。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!