Here you can find the source of getAllInterfaces(Class> cls)
public static List<Class<?>> getAllInterfaces(Class<?> cls)
//package com.java2s; /*// w w w .j a v a 2 s .c o m * Copyright (c) 2012. The Genome Analysis Centre, Norwich, UK * MISO project contacts: Robert Davey, Mario Caccamo @ TGAC * ********************************************************************* * * This file is part of MISO. * * MISO is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * MISO 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MISO. If not, see <http://www.gnu.org/licenses/>. * * ********************************************************************* */ import java.util.*; public class Main { public static List<Class<?>> getAllInterfaces(Class<?> cls) { if (cls == null) { return null; } List<Class<?>> list = new ArrayList<Class<?>>(); while (cls != null) { Class[] interfaces = cls.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { if (!list.contains(interfaces[i])) { list.add(interfaces[i]); } List superInterfaces = getAllInterfaces(interfaces[i]); for (Iterator it = superInterfaces.iterator(); it.hasNext();) { Class intface = (Class) it.next(); if (!list.contains(intface)) { list.add(intface); } } } cls = cls.getSuperclass(); } return list; } }