java - 如何仅获取 java 类的 protected 和公共(public)构造函数?

标签 java reflection constructor

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

public Constructor<?>[] getDeclaredConstructors();

如何仅获取 java 类的 protected 和公共(public)构造函数?

最佳答案

getConstructors() 返回公共(public)构造函数。要获得 protected 构造函数,您必须使用 getDeclaredConstructors() ,然后迭代数组并检查构造函数是否 protected 。

这是代码示例:

for (Constructor c : clazz.getDeclaredConstructors()) {
    if (Modifier.isProtected(c.getModifiers())) {
       // this constructor is protected
    }
}

关于java - 如何仅获取 java 类的 protected 和公共(public)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28671943/

相关文章:

java - 如何用 Java 实现 MongoDB 聚合

scala - 嵌套类的反射

java - Scala TypeTag 到 java.lang.reflect.Type

c# - 如何获取静态成员中类类型的 System.Type 实例?

C# 依赖容器和构造函数

java - Weld -001409 : Ambiguous dependencies for type StepContext with qualifiers @Default

java - 在java中设置JTable中行的高度

java - 避免 "Broken Pipe"或 "EofException "异常的理想 jetty.xml 配置是什么?

c# - 我应该使用 default(Foo)、Foo.Empty 还是 null?

java - 在 Java 中创建构造函数的额外好处是什么?