我可以使用Java Reflection获取所有构造函数(private,protected和public):
public Constructor<?>[] getDeclaredConstructors();
如何才能获得java类的受保护和公共构造函数?
答案 0 :(得分:1)
getConstructors()
返回公共构造函数。要获取受保护的构造函数,必须使用getDeclaredConstructors()
,然后迭代数组并检查构造函数是否受保护。
以下是代码示例:
for (Constructor c : clazz.getDeclaredConstructors()) {
if (Modifier.isProtected(c.getModifiers())) {
// this constructor is protected
}
}
答案 1 :(得分:1)
使用java.lang.reflect.Modifier;
检查修饰符(即:public,protected,public final等):
Class<?> c = Class.forName("ClassName");
Constructor[] allConstructors = c.getDeclaredConstructors();
for (Constructor m : allConstructors) {
String modifier = Modifier.toString(m.getModifiers());
System.out.println(modifier);
}