我可以使用Java反射获取所有构造函数(私有、受保护和公共):
public Constructor<?>[] getDeclaredConstructors();
如何只获取java类的受保护构造函数和公共构造函数?
getConstructors()
返回公共构造函数。要获得受保护的构造函数,您必须使用getDeclaredConstructors()
,然后对数组进行迭代,并检查构造函数是否受保护。
这是代码示例:
for (Constructor c : clazz.getDeclaredConstructors()) {
if (Modifier.isProtected(c.getModifiers())) {
// this constructor is protected
}
}
使用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);
}