【发布时间】:2016-05-16 08:26:03
【问题描述】:
public class A {
public class B{
public class C {
}
}
public class D {
}
}
如果这是我的示例,我如何编写 java 代码来获取字符串中的 A、B、C 和 D 等类的名称。帮助将不胜感激。谢谢
【问题讨论】:
public class A {
public class B{
public class C {
}
}
public class D {
}
}
如果这是我的示例,我如何编写 java 代码来获取字符串中的 A、B、C 和 D 等类的名称。帮助将不胜感激。谢谢
【问题讨论】:
我想出了这个基于reflection 的答案:
public static List<String> getClassNames(Class baseClass) {
List<String> classNames = new ArrayList<String>();
classNames.add(baseClass.getSimpleName());
for (Class subclass: baseClass.getClasses()) {
classNames.addAll(getClassNames(subclass));
}
return classNames;
}
返回 [A, D, B, C]。你没有说清楚顺序是否重要。
【讨论】:
如果要解析的类不在您的类路径中(并且您只有源代码),您需要解析它并与任何可能的 java 代码兼容,您应该使用 java 解析器。有几种。你可以google一下。
例如:https://github.com/javaparser/javaparser
如果类在你的类路径中,你可以使用反射。
【讨论】: