Java Reflection Interface Get getAllInterfaces(Class type)

Here you can find the source of getAllInterfaces(Class type)

Description

get All Interfaces

License

Open Source License

Declaration

public static List<Class<?>> getAllInterfaces(Class<?> type) 

Method Source Code

//package com.java2s;
/*/*w ww.  jav a 2s  . c om*/
 * Copyright (C) 2008 Universidade Federal de Campina Grande
 *  
 * This file is part of Commune. 
 *
 * Commune is free software: you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License as published by the Free 
 * Software Foundation, either version 3 of the License, or (at your option) 
 * any later version. 
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT 
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
 * for more details. 
 * 
 * You should have received a copy of the GNU Lesser General Public License 
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 * 
 */

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static List<Class<?>> getAllInterfaces(Class<?> type) {
        List<Class<?>> allInterfaces = new ArrayList<Class<?>>();

        if (!type.isInterface()) {
            Class<?> superclass = type.getSuperclass();
            if (superclass != null) {
                List<Class<?>> superIfs = getAllInterfaces(superclass);
                for (Class<?> superIf : superIfs) {
                    if (!allInterfaces.contains(superIf)) {
                        allInterfaces.add(superIf);
                    }
                }
            }
        }

        Class<?>[] interfaces = type.getInterfaces();
        for (Class<?> interf : interfaces) {
            if (!allInterfaces.contains(interf)) {
                allInterfaces.add(interf);
            }

            List<Class<?>> interfIfs = getAllInterfaces(interf);
            for (Class<?> interfIf : interfIfs) {
                if (!allInterfaces.contains(interfIf)) {
                    allInterfaces.add(interfIf);
                }
            }
        }

        return allInterfaces;
    }
}

Related

  1. getAllInterfaces(Class clazz)
  2. getAllInterfaces(Class clazz)
  3. getAllInterfaces(Class clazz)
  4. getAllInterfaces(Class cls)
  5. getAllInterfaces(Class cls)
  6. getAllInterfaces(Object object)
  7. getAllInterfaces(Set> searchInterfaces, Class clazz)
  8. getAllInterfacesForClass(Class clazz)
  9. getAllInterfacesNames(Class aClass)