注释:首先是一种代码级别的注释,因为注解需要另一端代码去读取它,才有意义
说他是注释,是因为它本身只是对代码进行说明的作用,并不会修改被注解的代码的功能。
2、样子:@注解名
3、系统的三个最最基本的注解
(1)@Override:表示方法是重写的方法
编译器检查到某个方法上面标记了@Override,就会对方法进行格式检查,看是否符合重写的要求。
(2)@SupressWarings:表示抑制xx警告
(3)@Deprecated:表示xx已过时
编译器检测到你使用了已经标记了@Deprecated的类或方法等时,会弹出警告,不建议使用,因为往往这样的方法要么很麻烦,要么有问题。
4、文档注释
(1)@author 作者
(2)@version 版本
(3)@since 起始版本
(4)@see 参考的类等
(5)@param 参数名 数据类型 参数的解释
(6)@return 返回值类型 说明
(7)@throws 异常的类型 说明
其中(5)(6)(7)用在方法上面,而且要注意,@param有几个形参写几个,没有就不写。@return返回值类型是void就不写,不是void需要写,@throws如果有抛出异常类型就写,没有就不写。
如果代码中添加了文档注释,可以使用javadoc.exe工具生成API。
文档注释:
/**
文档注释
*/
5、JUnit的几个注解
别忘了引入JUnit的库
(1)@Test:表示某个方法是可以单独测试的方法
(2)@Before/@After:表示这个方法在每一个@Test方法之前/后都要运行
(3)@BeforeClass/@AfterClass:表示这个方法要在所有的测试方法之前/后运行,只运行一次
使用JUnit的类必须是公共的
标记@Test、@Before、@After的方法要求:public void 无参
标记@BeforeClass、@AfterClass的方法要求:public static void 无参
6、自定义注解
(1)语法格式
@元注解 【修饰符】 @interface 注解名{ } @元注解 【修饰符】 @interface 注解名{ 配置参数 }
(2)元注解
A:@Target:说明注解的使用位置
位置有ElementType枚举类型的10个常量对象来指定
B:@Retention:说明注解的生命周期
生命周期由RetentionPolicy的3个常量对象来指定:SOURCE、CLASS、RUNTIME
只有RUNTIME阶段的才能被反射读取到
C:@Inherited:说明这个注解是否可以被子类继承
D:@Documented:说明这个注解信息是否可以被javadoc读取到API中
(3)使用自定义注解有什么要求
A:使用自定义注解时,要先看它的@Target,看能用在什么位置
B:使用自定义注解时,要看是否有配置参数需要赋值
当注解的配置参数只有一个需要赋值,并且参数名是value,那么可以省略value=