javaSE_8系列博客——Java语言的特性(四)--注解--(1)--基础知识
来源:互联网 发布:离线的翻译软件 编辑:程序博客网 时间:2024/05/16 04:27
概述:
注解,一种元数据形式提供了一个不属于程序本身的程序数据。注解对它们所注解代码的操作没有直接的影响。
作用:
注解有很多用途,其中:
1、编译器的信息 - 编译器可以使用注释来检测错误或平息警告。
2、编译时和部署时处理 - 使用软件工具可以处理注解信息以生成代码,XML文件等。
3、运行时处理 - 有些批注可在运行时检查。
本课将说明可以使用注释的位置,如何应用注解,Java平台,标准版(Java SE API)中可用的预定义注解类型,可插拔类型系统如何与可插拔类型的系统一起使用更强的编写代码类型检查,以及如何实现重复注解。
注解的格式
在其最简单的形式中,注释如下所示:
@Entity符号(@)向编译器指出接下来是一个注释。在以下示例中,注解的名称为override:
@Overridevoid mySuperMethod() { ... }注释可以包括可以命名或未命名的元素,并且有这些元素的值:
@Author( name = "Benjamin Franklin", date = "3/27/2003")class MyClass() { ... }或者:
@SuppressWarnings(value = "unchecked")void myMethod() { ... }如果只有一个名为value的元素,那么该名称可以省略,如:
@SuppressWarnings("unchecked")void myMethod() { ... }
如果注释没有元素,则可以省略括号,如前面的@Override示例所示。
在同一声明中也可以使用多个注解:
@Author(name = "Jane Doe")@EBookclass MyClass { ... }如果注释具有相同的类型,那么这称为重复注释:
@Author(name = "Jane Doe")@Author(name = "John Smith")class MyClass { ... }
注解类型可以是Java SE API的java.lang或java.lang.annotation包中定义的类型之一。在前面的例子中,覆盖和平息警告是预定义的Java注解。也可以定义自己的注解类型。上一个示例中的author和Ebook注解是自定义注解类型。
注解的应用场景
注解可以应用于声明:类,字段,方法和其他程序元素的声明。在声明中使用时,每个注解通常按照惯例出现在所注解行的上方。
从Java SE 8版本开始,注解也可以应用于类型的使用。这里有些例子:(这种注解形式称为类型注解。)
1、类实例创建表达式:
new @Interned MyObject();
2、类型转换:
myString = (@NonNull String) str;
3、实现接口
class UnmodifiableList<T> implements @Readonly List<@Readonly T> { ... }
4、异常抛出的声明
void monitorTemperature() throws @Critical TemperatureException { ... }
阅读全文
0 0
- javaSE_8系列博客——Java语言的特性(四)--注解--(1)--基础知识
- javaSE_8系列博客——Java语言的特性(四)--注解--(5)-- 如何使用自定义的注解?
- javaSE_8系列博客——Java语言的特性(四)--注解--(2)-- 声明一个注解
- javaSE_8系列博客——Java语言的特性(四)--注解--(3)-- 预定义注解
- javaSE_8系列博客——Java语言的特性(四)--注解--(4)-- 类型注解和可插拔类型系统
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(1)-- 变量
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(4)-- 变量和数组
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(5)-- 运算符
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(6)-- 表达式、语句、块
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(7)-- 流程控制语句
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(3)-- 基本数据类型的默认值
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(2)-- 变量和常用数据类型
- javaSE_8系列博客——Java语言的特性(一)--关于面向对象基本概念的理解(1)
- javaSE_8系列博客——Java语言的特性(五)--接口和继承(1)--宏观把控
- javaSE_8系列博客——Java语言的特性(三)--类和对象(1)--概述
- JavaSE_8系列博客——Java语言的特性(六)--泛型(1)--宏观把控
- JavaSE_8系列博客——Java语言的特性(六)--泛型(4)--Java中泛型实现的原理
- bootstrap下拉菜单
- Spring源码学习--BeanPostProcessor
- 网络操作系统
- Picasso源码完全解析(四)--Action分发和执行
- Adaboost算法与应用实例简析
- javaSE_8系列博客——Java语言的特性(四)--注解--(1)--基础知识
- POJ 1181 Bus Terminals 笔记
- 二叉树的非递归前序,中序,后续遍历实现
- 【C#】之泛型基础概念
- LeetCode 447. Number of Boomerangs ***** 灵活键,查找表
- [PAT-乙级]1033.旧键盘打字
- JAXB实现XML和实体对象互转
- bootstrap响应式嵌入组件
- HDU 1495 非常可乐