Java中getDeclaredClasses()方法详解
方法介绍
Java中getDeclaredClasses()方法是获取包含当前类所有内部类、枚举类型和注解类型的数组,不包含继承自父类的内部类。
public Class<?>[] getDeclaredClasses() throws SecurityException
方法参数
该方法没有传入参数。
方法返回值
该方法将当前类所有内部类、枚举类型和注解类型封装成一个数组返回,该数组元素的Type为java.lang.Class。
使用示例
示例1:获取类中所有内部类
public class OuterClass {
private class InnerClass1 {
void print() { System.out.println("This is InnerClass1"); }
}
protected class InnerClass2 {
void print() { System.out.println("This is InnerClass2"); }
}
public void test() {
InnerClass1 inner1 = new InnerClass1();
InnerClass2 inner2 = new InnerClass2();
Class<?>[] ch = this.getClass().getDeclaredClasses();
for(Class<?> clazz : ch){
System.out.println(clazz.getName());
}
}
public static void main(String args[]) {
OuterClass outer = new OuterClass();
outer.test();
}
}
输出结果为
OuterClass$InnerClass1
OuterClass$InnerClass2
示例2:获取类中所有注解类型
public class Test {
@SuppressWarnings("unused")
private String name;
@Deprecated
public void emptyMethod() {
// do something
}
public static void main(String[] args) throws Exception {
Class<Test> clazz = Test.class;
Class<?>[] cs = clazz.getDeclaredClasses();
for(Class<?> c : cs){
System.out.println(c.getName());
}
}
}
输出结果为
Test$1