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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface USERInfo {
String userInfo();
int age() default 20;
}
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @Documented public @interface USERInfo { String userInfo(); int age() default 20; }
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface USERInfo {

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Field [] fds = this.getClass().getDeclaredFields();
for(Field fd : fds ) {
if(fd.isAnnotationPresent(USERInfo.class)) {
//some code
}
}
Field [] fds = this.getClass().getDeclaredFields(); for(Field fd : fds ) { if(fd.isAnnotationPresent(USERInfo.class)) { //some code } }
Field [] fds = this.getClass().getDeclaredFields();
for(Field fd : fds ) {
  if(fd.isAnnotationPresent(USERInfo.class)) {
   //some code 
  }
}

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Field [] fds = this.getClass().getDeclaredFields();
for(Field fd : fds ) {
USERInfo userInfo =fd.getAnnotation(USERInfo.class)
int cnt= userInfo.getage()
Field [] fds = this.getClass().getDeclaredFields(); for(Field fd : fds ) { USERInfo userInfo =fd.getAnnotation(USERInfo.class) int cnt= userInfo.getage()
Field [] fds = this.getClass().getDeclaredFields();
for(Field fd : fds ) {
  USERInfo userInfo =fd.getAnnotation(USERInfo.class)
  int cnt= userInfo.getage()

 

SpringMVC

Posted by arkgame