hello_dakewang

导航

java 中的注解

---恢复内容开始---

1.什么是注解

  注解(也称元数据)为我们在代码中添加信息提供了一种形式化方法,我们可以在编程时非常方便的使用这些数据。

2.Java中内置的三大标准注解

  @Override 表示当前的方法覆盖父类(超类)的方法。如果不小心拼写错误或者方法签名跟覆盖的方法对不上时,编译器会发出错误提示。

  @Deprecated  使用此注解表示该方法已过期,但是也可以使用,在编译时会发出告警信息。

   @SuppressWarnings 关闭当前编译器的告警信息。

     另外还有四中元注解专门负责新注解的创建:

   

 3.定义注解及使用

a.定义注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* 测试注解
* Created by qiqi on 2019/9/4 16:51
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestCase {
public int id();
public String description() default "no description";
}

b.使用注解
/**
* 注解实例
* Created by qiqi on 2019/9/4 16:54
*/
public class PasswordUtils {

@TestCase(id = 14, description = "这是描述")
public boolean validPassword() {
return true;
}
}
c.使用Java中的反射来定义注解处理器
import java.lang.reflect.Method;

/**
* Created by qiqi on 2019/9/4 16:57
*/
public class AnnotaionTest {

public static void main(String[] args) {
test(PasswordUtils.class);
}

public static void test(Class<?> cl) {
for (Method m : cl.getDeclaredMethods()) {
TestCase tc = m.getAnnotation(TestCase.class);
if (null != tc) {
System.out.println("这是测试用例 id:"+tc.id()+" 说明:"+ tc.description());
}
}
}
}

d,执行结果

这是测试用例 id:14 说明:这是描述

posted on 2019-09-04 17:16  hello_dakewang  阅读(236)  评论(0编辑  收藏  举报