我怎样才能获得java类的受保护和公共构造函数?

时间:2015-02-23 10:47:21

标签: java reflection constructor

我可以使用Java Reflection获取所有构造函数(private,protected和public):

public Constructor<?>[] getDeclaredConstructors();

如何才能获得java类的受保护和公共构造函数?

2 个答案:

答案 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);
     }