Here you can find the source of getAllInterfacesNames(Class> aClass)
public static List<String> getAllInterfacesNames(Class<?> aClass)
//package com.java2s; /*//from w w w . j a v a 2 s.c o m * Copyright 2016 Decebal Suiu * * 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. */ import java.util.ArrayList; import java.util.List; public class Main { public static List<String> getAllInterfacesNames(Class<?> aClass) { return toString(getAllInterfaces(aClass)); } /** * Uses {@link Class#getSimpleName()} to convert from {@link Class} to {@link String}. * * @param classes * @return */ private static List<String> toString(List<Class<?>> classes) { List<String> list = new ArrayList<>(); for (Class<?> aClass : classes) { list.add(aClass.getSimpleName()); } return list; } public static List<Class<?>> getAllInterfaces(Class<?> aClass) { List<Class<?>> list = new ArrayList<>(); while (aClass != null) { Class<?>[] interfaces = aClass.getInterfaces(); for (Class<?> anInterface : interfaces) { if (!list.contains(anInterface)) { list.add(anInterface); } List<Class<?>> superInterfaces = getAllInterfaces(anInterface); for (Class<?> superInterface : superInterfaces) { if (!list.contains(superInterface)) { list.add(superInterface); } } } aClass = aClass.getSuperclass(); } return list; } }