「Spring」getAnnotation()とisAnnotationPresent()メソッドでアノテーションを操作する方法

説明
1.public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。
2.getAnnotation(Class<T> annotationClass)
存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
サンプルコード
1. アノテーション定義(USERInfo.java)

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface USERInfo {

  String userInfo();
  
  int age() default 20;
}

2.アノテーションが存在チェック(isAnnotationPresent)

Field [] fds = this.getClass().getDeclaredFields();
for(Field fd : fds ) {
  if(fd.isAnnotationPresent(USERInfo.class)) {
   //some code 
  }
}

3.アノテーションの要素を取得(getAnnotation)

Field [] fds = this.getClass().getDeclaredFields();
for(Field fd : fds ) {
  USERInfo userInfo =fd.getAnnotation(USERInfo.class)
  int cnt= userInfo.getage()

 

SpringMVC

Posted by arkgame