Java tutorial
//package com.java2s; /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 { /** * <p>Gets a <code>List</code> of all interfaces implemented by the given * class and its superclasses.</p> * * <p>The order is determined by looking through each interface in turn as * declared in the source file and following its hierarchy up. Then each * superclass is considered in the same way. Later duplicates are ignored, * so the order is maintained.</p> * * @param cls the class to look up, may be <code>null</code> * @return the <code>List</code> of interfaces in order, * <code>null</code> if null input */ public static List getAllInterfaces(Class cls) { if (cls == null) { return null; } List interfacesFound = new ArrayList(); getAllInterfaces(cls, interfacesFound); return interfacesFound; } /** * Get the interfaces for the specified class. * * @param cls the class to look up, may be <code>null</code> * @param interfacesFound the <code>Set</code> of interfaces for the class */ private static void getAllInterfaces(Class cls, List interfacesFound) { while (cls != null) { Class[] interfaces = cls.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { if (!interfacesFound.contains(interfaces[i])) { interfacesFound.add(interfaces[i]); getAllInterfaces(interfaces[i], interfacesFound); } } cls = cls.getSuperclass(); } } }