Here you can find the source of getAnnotationInstances(Class> clazz, Class
public static <T extends Annotation> Set<T> getAnnotationInstances(Class<?> clazz, Class<T> annotationClass)
//package com.java2s; /******************************************************************************* * /*from www.j a va2 s . co m*/ * Struts2-Conversation-Plugin - An Open Source Conversation- and Flow-Scope Solution for Struts2-based Applications * ================================================================================================================= * * Copyright (C) 2012 by Rees Byars * http://code.google.com/p/struts2-conversation/ * * ********************************************************************************************************************** * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * * ********************************************************************************************************************** * * $Id: ReflectionUtil.java reesbyars $ ******************************************************************************/ import java.lang.annotation.Annotation; import java.util.HashSet; import java.util.Set; public class Main { public static <T extends Annotation> Set<T> getAnnotationInstances(Class<?> clazz, Class<T> annotationClass) { Set<T> annotationInstances = new HashSet<T>(); for (Class<?> clazzClass : clazz.getInterfaces()) { if (clazzClass.isAnnotationPresent(annotationClass)) { annotationInstances.add(clazzClass.getAnnotation(annotationClass)); } } if (clazz.isAnnotationPresent(annotationClass)) { annotationInstances.add(clazz.getAnnotation(annotationClass)); } Class<?> superClass = clazz.getSuperclass(); if (superClass != null) { annotationInstances.addAll(getAnnotationInstances(superClass, annotationClass)); } return annotationInstances; } }