三个基本注解
(1)@Override
作用:检查这个方法是否符合重写的要求
(2)@SuppressWarnings(xx)
作用:抑制警告
(3)@Deprecated
作用:标记某个方法,类,属性等已过时
文档注解相关的注解
/**
*
*/
@author :作者
@see:另请参阅
@since:从xx版本引入
@param:形参
格式:@param 形参名 形参数据类型 解释
要求:方法有几个形参,就写几个@param
@return:返回值
格式:@return 返回值类型 解释
要求:如果方法返回值类型是void,就不用写了
@throws:抛出的异常或@exeception
格式:@throws 异常类型名 解释
要求:方法声明可能抛出几种异常,就写几个,没有就不写
JUnit的注解
要求:
(1)单元测试的方法都必须是public
(2)必须是无参的
(3)必须是void
1.@Test:
用它标记的方法,就可以作为一个单元进行测试
2.@Before:在xx之前
会在每一个@Test方法之前
3.@After:在xx之后
会在每一个@Test方法之后
4.@BeforeClass:会在类初始化阶段完成
5.@AfterClass:会在类卸载阶段完成
4和5每个类只执行一次,并且要求方法是静态的
自定义注解
1.语法格式:
@元注解
【修饰符】 @interface 注解名{
}
@元注解
【修饰符】 @interface 注解名{
配置参数列表;
}
(1)如果声明注解时有配置参数,那么在使用注解的时候,需要给这个配置参数赋值
(2)如果注解的配置参数只有一个,并且名字是value,那么在使用赋值时,可以省略“value”,其他配置参数名称不可省略
(3)这个配置参数的类型:8中基本数据类型,String,枚举,Class类型,Annotation类型,以上这些类型的数组;
(4)配置参数可以有默认值,如果配置参数有默认值,那么在使用时可以不用赋值,也可以重新赋值
@元注解
【修饰符】 @interface 注解名{
数据类型 参数名() default 默认值;
}
元注解
元注解:注解注解的注解,即加在注解上面的注解
1.@Target
标记这个注解可以用于什么位置,它由ElementType枚举的常量对象来表示。例如:TYPE,FILED,CONSTRUCTOR等10个位置
2.@Retention
标记这个注解可以滞留到什么阶段,它由RetentionPolicy的3个常量对象来指定,SOURCE,CLASS,RUNTIME
SOURCE:源代码阶段.java 只能被编译器读取
CLASS:字节码阶段.class
RUNTIME:运行时JVM
3.@Documented
标记某个注解是否可以被javadoc.exe读取到API
4.@Inherited
标记这个注解是否可以被子类继承
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import static java.lang.annotation.ElementType.*;
public class TextJUit {
//元注解
@Target(ElementType.METHOD) //表示该注解只能用在方法上
@Target({ElementType.METHOD,ElementType.TYPE})
@Target({METHOD,TYPE}) //但需写上静态导入import static ...
@Retention(RetentionPolicy.RUNTIME)
//自定义注解
@interface MyAnnotation{
}
//使用注解
@MyAnnotation
public void test3(){
}
@interface YourAnnotation{
String value();
}
@YourAnnotation("hahaha")
class Y{
}
}
静态导入
语法格式:
import static 包.类名.静态成员;
import static 包.类名.*;