注解
简介:注解是java代码里的特殊标记,为java程序代码提供了一种形式化的方法、
注解以标签的形式存在于java代码中、注解的存在并不影响程序代码的编译和执行,
他只是用来生成其他文件或使我们在运行代码时知道 被运行代码的描述信息
| 作用: | |
|---|
| 编写文档 |
| 替代配置文件 |
| 编译检查 |
| 应用: | |
| 通过注解的方法进行数据库的连接 |
| 企业级Web框架开发通过大量注解配置、减少代码量 |
语法:
@Annotation(参数)
Annotation为注解类型
注解的参数可以没有,也可以有一个或多个
@Override
@SuppressWarnings(value="unused")
@MyTag(name="张三",age="18")
| 使用注解语法时,需要注意以下规范 | |
|---|
| 在将注解置于所有修饰符前 |
| 通常注解单独放一行 |
| 默认情况下,注解可用于修饰任何程序元素,包括类、方法和成员变量等 |
| 内建注解 | 说明 |
|---|
| @Override | 加上此注解,如果重写方法修饰不一样会自动在注解上报错 |
| @Deprecated | 过时注解,表示此方法或属性、类以过时,调用时会有下划线 |
| @SuppressWarnings(“all”) | 一般修饰整个类,抵制编译器黄色警告 all 为所有 |
| @SuppressWarnings("*") | * 说明 |
|---|
| deprecation | 使用了过时程序元素 |
| unchecked | 执行了未检查的转换 |
| unused | 有程序元素未被使用 |
| fallthrough | switch程序块直接通往下一种情况而没有break |
| path | 在类路径、源文件路径等中有不存在的路径 |
| serial | 在可序列化的类上缺少serialVersionUID定义 |
| finally | 任何finally字句不能正常完成 |
| all | 所有情况 |
如果@SuppressWarnings注解所声明的被禁止的警告个数只有一个时,则可不用大括号
@SuppressWarnings("unchecked")
@SuppressWarnings({"unchecked","fallthrough"})
| 元注解 | 说明 |
|---|
| @Target | 可设置注解类型 |
| @Retention | |
| @Documented | |
| @Inherited | |
自定义注解:注解类型定义后,就可以用它来修饰程序中的类、接口、方法、成员变量等程序
只能返回基本数据类型 以及以上类型的数组、枚举、注解
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnol {
String a();
}
@MyAnnol(a="葛霄")
@SuppressWarnings("all")
public class Test {
public static void main(String[] args) throws Exception {
Annotation[] arr = Class.forName("读取注解.Test").getAnnotations();
for (Annotation a:arr){
System.out.println(a);
}
}
}
@未做完