注解 Annotation

注释:提高程序的可读性,对程序运行没有影响。

注解: 给程序带上一些标记,从而影响编译器运行程序的结果!

注解的作用:

1)可以在程序上(类、方法、属性)携带信息

2) 通过注解简化(取代)配置文件(xml或者properties文件)

1 常见注解


//告诉编译器强制对方法进行覆盖(重写)

@Override

public String toString() {

return super.toString();

}

//告诉编译器压制警告

@SuppressWarnings("rawtypes")

public List save()

{

List list = new ArrayList();

return list;

}

//提示方法过时

@Deprecated

public void update()

{

}

2 注解语法

public @interface Override {

}

3 自定义注解

public @interface Author {

//声明属性

//1)属性的类型可以是基本类型也可以是数组类型

//2)使用default给注解属性一个默认值

// String name();

// String[] name() default "Lynn";

//3)如果属性名称为value的话,在引用的时候可以不写名value

// 一定是第一个。

String value();

}

4 元注解

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})

声明注解的使用范围:

TYPE: 注解可以使用在类上

FIELD:成员变量

METHOD:方法

PARAMETER:参数

CONSTRUCTOR: 构造方法

LOCAL_VARIABLE:局部变量

@Retention(RetentionPolicy.SOURCE)

声明注解的有效范围:

RetentionPolicy.SOURCE 注解只要源码中有效。

RetentionPolicy.CLASS 改注解在源码、字节码文件中有效。(默认)

RetentionPolicy.RUNTIME 注解在源码、字节码文件以及运行时有效

5 反射注解

@Author("Lynn")

public void testAnno() throws NoSuchMethodException, SecurityException

{

//1)获取当前方法

Method method = this.getClass().getMethod("testAnno", null);

//2)获取方法上的注解

Author author = method.getAnnotation(Author.class);

//3)获取注解中的属性

String value = author.value();

System.out.println(value);

}

6 单元测试:

单独测试某个方法或者模块。

要求:

1) 依赖JUnit jar包。

 2) 方法上要加@Test注解

 3) 方法的返回值类型为void

4) 方法是无参数的。

@Test

public void testAnnotation() throws NoSuchMethodException, SecurityException

{

User user = new User();

user.testAnno();

}

猜你喜欢

转载自blog.csdn.net/qq_42239765/article/details/82801134