📜  Java中的类 getAnnotationsByType() 方法和示例(1)

📅  最后修改于: 2023-12-03 14:42:58.518000             🧑  作者: Mango

Java中的类 getAnnotationsByType() 方法和示例

在Java中,注解(Annotation)是一种为程序元素(如类、方法、字段等)添加元数据的标记机制。在代码中注释出现的位置由注解声明定义。

getAnnotationsByType() 方法是Java JDK1.8中的一个功能,用于从类、方法、字段等程序元素中获取指定类型的注解。该方法返回一个注解类型的对象数组。

以下是Java中类 getAnnotationsByType() 方法的语法:

public <T extends Annotation> T[] getAnnotationsByType(Class<T> annotationClass)

参数说明:

  • T: 注解的类型。
  • annotationClass: 一个注解的类。

示例:

  1. 定义注解类型@Repository:
import java.lang.annotation.*;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Repository {
    String value();
}
  1. 在类中使用指定注解:
@Repository("UserRepository")
public class UserRepository {
    public void addUser(User user) {
        System.out.println("add user: " + user.toString());
    }

    public void deleteUser(User user) {
        System.out.println("delete user: " + user.toString());
    }

    public void updateUser(User user) {
        System.out.println("update user: " + user.toString());
    }

    public User queryUser(String username) {
        return new User("lily", 18);
    }
}
  1. 使用getAnnotationsByType()方法获取实例以及实例的value属性值:
import java.lang.annotation.Annotation;

public class Test {
    public static void main(String[] args) {
        Annotation[] annotations = UserRepository.class.getAnnotationsByType(Repository.class);
        for (Annotation annotation : annotations) {
            if (annotation instanceof Repository) {
                Repository repository = (Repository) annotation;
                String value = repository.value();
                System.out.println("value: " + value);
            }
        }
    }
}

输出结果:

value: UserRepository

以上就是Java中类 getAnnotationsByType() 方法及使用示例。