注解

注解(数据类型)

注解作用

1. 编译检查(@Test的junit单元测试)
2. 配置(框架 / 例如封装数据库的用户名和密码)
3. 生成帮助文档(写好作者、调用的api等)

注解特点

1. 可以在变量、方法、类上加载

1
2
3
4
5
6
7
	@Test(timeout=1000)  //方法
public void test03(){}

--------------------------------------

@SuppressWarnings("unused") //变量
int i;

2. 可以有属性也可以没有属性

1
@Override     @Test(timeout=1000)

3. 注解有范围(源码,编译期间,运行期间)

3.1 源码:

1
2
3
4
5
String类之上

@Author: 编写代码的作者
@Since :从哪里调用
@See :调用什么api

3.2 编译期:

1
2
3
@Override    声明当前的方法是重写父类的方法
@Deprecated 抑制编译器发生警告信息
@Suppresswarning 抑制编译器发生警告信息(如果有变量未使用,未遵循泛型格式错误不报警告)

3.3 运行期:

1
@Test  单元测试Junit4(一般)

注解举例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//以下注解的含义是:声明当前的方法是重写父类的方法
@Override
public String toString() {
return super.toString();
}

public void test01(){
//以下注解的含义是:抑制编译器发生警告信息
@SuppressWarnings("unused")
int i;

//以下注解的含义是:抑制编译器发生警告信息(如果有变量未使用,未遵循泛型格式错误不报警告)
@SuppressWarnings({ "unused", "rawtypes" })
List a=new ArrayList();
}

//以下注解的含义是:声明以下的方法是过时的方法,不建议大家使用
@Deprecated
public void test02(){

}

//以下注解的含义是:如果当前方法的执行时间超过1秒,会报错
@Test(timeout=1000) //单元测试
public void test03(){
try {
Thread.sleep(1100);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("DDDDDDDDDDDDD");
}

自定义注解

格式

1
2
3
4
public @interface 注解名称{
public 属性类型 属性名称1();
public 属性类型 属性名称2() default 默认值;
}

属性支持的类型

1
2
3
4
5
6
1.基本数据类型(4类8种)
2.String
3.Class
4.Annotation(注解类型)
5.枚举类型
6.以上类型的一维数组类型

写一个名为MyAnno01的注解

1
2
3
4
5
6
7
8
public @interface MyAnno01 {

//1 不加默认值
public long timeout();

//2 加默认值
public long timeout1() default 1000;
}

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 注解(数据类型)
    1. 1.1. 注解作用
    2. 1.2. 注解特点
    3. 1.3. 注解举例
  2. 2. 自定义注解
    1. 2.1. 格式
    2. 2.2. 属性支持的类型
,