注解的使用

1.定义注解

 

package com.envision.energy.rtc.util;

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

//新建一个注解
@Target(ElementType.FIELD) //可以在方法或者字段上添加注解
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface UseCase {
    public String id();

    public String description() default "no description";
}
 

 

2.使用注解

package com.envision.energy.rtc.util;

public class PasswordUtils {

    @UseCase(id = "47", description = "Passwords must contain at least one numeric")

    private String name;

    @UseCase(id = "48", description = "Passwords must contain at least one numeric")

    private int age;

    public boolean validatePassword(String password) {
        return (password.matches("\\w*\\d\\w*"));
    }

    public String encryptPassword(String password) {
        return new StringBuilder(password).reverse().toString();
    }

}
 

package com.envision.energy.rtc.util;

import java.lang.reflect.Field;

public class Client {

    public static void main(String[] args) {

        Field[] fields = PasswordUtils.class.getDeclaredFields();

        for(Field field : fields)
        {
            field.setAccessible(true);
            UseCase useCase=field.getAnnotation(UseCase.class);
            
            if(null !=useCase )
            {
                System.out.println(useCase.id()+","+useCase.description());
            }
        }
        
    }

}
 

你可能感兴趣的:(注解的使用)