package test;
/**
*
* , 。
* , 。
* , showSuperclass(Class clz) 。
* , , 。
*/
import java.lang.reflect.Type;
import org.apache.log4j.Logger;
public class ShowSuper {
private static Logger log = Logger.getLogger(ShowSuper.class);
/**
*
* @param clz
*/
public static void showSuperclass(Class clz)
{
while(clz!=null)
{
System.out.println( "16 (" + clz.getName() + ".java:1)");
clz = clz.getSuperclass();
}
}
/**
* getGenericSuperclass getSuperclass ,
* @param clz
*/
public static void showGenericSuperclass(Class clz)
{
while(clz!=null)
{
System.out.println( "16 (" + clz.getName() + ".java:1)");
clz = (Class)clz.getGenericSuperclass();
}
}
public static void showInterfaces(Class clz)
{
System.out.println( "(" + clz.getName() + ".java:1)");
if(clz!=null)
{
Class[] clzs = clz.getInterfaces();
System.out.println( "clzs.length:" + clzs.length);
for(int i=0; i<clzs.length; i++)
{
System.out.println( "30 (" + clzs[i].getName() + ".java:1)");
//showSuperclass(clzs[i]);
}
}
}
/**
* getGenericInterfaces getSuperInterfaces
* ,
* @param clz
*/
public static void showGenericInterfaces(Class clz)
{
System.out.println( "(" + clz.getName() + ".java:1)");
if(clz!=null)
{
Type[] clzs = clz.getGenericInterfaces();
System.out.println( "clzs.length:" + clzs.length);
for(int i=0; i<clzs.length; i++)
{
System.out.println( "57 (" + ((Class)clzs[i]).getName() + ".java:1)");
//showSuperclass(clzs[i]);
}
}
}
public static void main(String[] args)
{
//Class clz = log.getClass();
//log.debug( clz );
// Class clz = null;
// for(int i=0; i<10; i++)
// {
// if(clz==null)
// {
// clz = log.getClass();
// }
// else
// {
// clz = clz.getSuperclass();
// }
// if(clz==null)
// {
// break;
// }
// log.debug( "(" + clz.getName() + ".java:1)");
//
// }
//showSuperclass(log.getClass());
//showSuperclass(Class.class);
//showInterfaces(Class.class);
//showInterfaces(Imp01.class);
//showInterfaces(Logger.class);
//showSuperclass(Imp01.class);
//showGenericSuperclass(Imp01.class);
//showGenericInterfaces(Imp01.class);
//showGenericInterfaces(Interface02.class);
//showGenericInterfaces(Interface01.class);
showGenericInterfaces(Interface11.class);
//showSuperclass(Interface02.class);
//showGenericSuperclass(Interface02.class);
}
}