package com.logicbig.example.clazz;
import java.io.Serializable;
import java.util.Arrays;
public class GetClassesExample {
public static void main(String... args) {
Class<?>[] classes = GetClassesExample.class.getClasses();
Arrays.stream(classes)
.forEach(System.out::println);
}
public class MyClass extends MyClass2 implements Cloneable {
}
public class MyClass2 implements Serializable {
}
public interface MyInterface extends Serializable {
}
public static class MyStaticClass {
}
public static class MyMainSuperClass {
}
}
Output
class com.logicbig.example.clazz.GetClassesExample$MyMainSuperClass
class com.logicbig.example.clazz.GetClassesExample$MyStaticClass
interface com.logicbig.example.clazz.GetClassesExample$MyInterface
class com.logicbig.example.clazz.GetClassesExample$MyClass2
class com.logicbig.example.clazz.GetClassesExample$MyClass
If Member classes are not public:
package com.logicbig.example.clazz;
import java.util.Arrays;
public class GetClassesExample3 {
public static void main(String... args) {
Class<?>[] classes = GetClassesExample3.class.getClasses();
System.out.println(Arrays.toString(classes));
}
class A {
}
interface B {
}
private class C {
}
protected interface D {
}
}
Output
[]
package com.logicbig.example;
public class MainSuperClass {
public class MainSuperNestedClass {
}
public interface MainSuperNestedInterface {
}
}
package com.logicbig.example;
public class MainClass extends MainSuperClass {
public static void main(String[] args) {
for (Class<?> aClass : MainClass.class.getClasses()) {
System.out.println(aClass);
}
}
}
Output
interface com.logicbig.example.MainSuperClass$MainSuperNestedInterface
class com.logicbig.example.MainSuperClass$MainSuperNestedClass