何以解忧,唯有暴富
1、What)——
- 什么是注解?注解是指程序功能外,在代码中添加***额外的信息***,这些信息可以用来修饰、标识功能代码,也可以修饰应用程序的***元素***,但不影响代码运行。
- 什么是***额外的信息***?比如:用来完整的描述程序所需的信息。
- 什么是***元素***?类,方法,属性,参数,本地变量,包,元数据
- 注解能做什么?可以提供用来完整描述程序所需的信息,以将由编译器来测试和验证的格式存储有关程序的额外信息;可以生成描述符文件,甚至是新的类定义,并且有助于减轻编写样板代码的负担;可以将元数据保存在java源代码中,并利用annotation API为自己的注解构造处理工具。
- 注解的优点是什么?更加干净易读的代码以及编译器类型检查等。
- 注解的缺点是什么?随着java发展越来越多,并且多而难记。(纯吐槽)
2、Where)——
- 哪里使用注解?
-
- 在类上使用
@Deprecated
public class Person{
//@Deprecated注解是jdk5中内置的其中一个
//用于声明方法或类已过时,不鼓励使用这样的方法或类,因为这可能存在风险或者有更好的选择。
@Deprecated
public void say(String something){}
}
-
- 在方法上使用
@Override
public String toString(){
//@Override注解是jdk5中内置的其中一个
//用于表示当前方法将覆盖父类的同名,同参数方法,
//如果定义的方法名在父类中不存在,编译器将会提示"must override or implement a supertype method"。
return "halo!!";
}
-
- 在属性上使用
@SuperWarnings(value="unused")
private String name;
//@SuperWarnings注解是jdk5中内置的其中一个
//用于关闭无需关心的警告信息,该注解可用于类,方法,属性上。
//注意:只在jdk5后可用,之前的会不起作用
3、When)——
- 什么时候应该使用注解?
1.生成文档.
2.跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring2 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量.
3.在编译时进行格式检查。如@Override放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出.
4、Who)——
- 是谁让注解变得可用?注解处理器
- 是谁协同注解共同使用提高效率?反射
- 是通过谁定义注解?元注解
5、Why)——
为什么使用注解?
1.为了解释清楚
2.为了代码简洁易懂
3.为了效率(偷懒)
为什么要自定义注解?
同上2333
6、How)——
如何自定义注解?
如何管理注解