Here you can find the source of getAllInterfaces(Class> type)
public static List<Class<?>> getAllInterfaces(Class<?> type)
//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; } }