Saturday, 8 June 2013

Listing nested classes and implemented interfaces names

Code
import java.util.Arrays;

class NestedInfoDemo {

public static void main(final String[] args) {
printMemberClasses(Class1.class);

}

public static void printMemberClasses(final Class dataType) {
final Class[] nestedClasses = dataType.getClasses();
final Class[] declaredNestedClasses = dataType.getDeclaredClasses();
final Class[] nestedInterfaces = dataType.getInterfaces();
final Class declaringClass = dataType.getDeclaringClass();

System.out.println("Member Class info for: " + dataType.getName());
System.out.println("Nested Classes: " + Arrays.asList(nestedClasses));
System.out.println("Declared Nested Classes: " + Arrays.asList(declaredNestedClasses));
System.out.println("Interfaces: " + Arrays.asList(nestedInterfaces));
System.out.println("Declaring Class: " + declaringClass);
System.out.println();
}

interface Int1 {

}

interface Int2 {

}

interface Int3 {

}

class Class1 implements Int1, Int2, Int3 {
public class Class4 {

}
}

class Class2 {
}

class Class3 {
}
}


Sample Output
Member Class info for: org.reflection.NestedInfoDemo$Class1
Nested Classes: [class org.reflection.NestedInfoDemo$Class1$Class4]
Declared Nested Classes: [class org.reflection.NestedInfoDemo$Class1$Class4]
Interfaces: [interface org.reflection.NestedInfoDemo$Int1, interface org.reflection.NestedInfoDemo$Int2, interface org.reflection.NestedInfoDemo$Int3]
Declaring Class: class org.reflection.NestedInfoDemo

No comments:

Post a Comment