getDeclaredConstructors

getDeclaredConstructors

我注意到在 Java 反射 API 中有两种不同的调用构造函数的方法:getDeclaredConstructors/getConstructors 方法。尽管 Java 文档略有不同( getDeclaredConstructors 似乎暗示它返回所有构造函数,而不是公共(public)构造函数),但不清楚为什么 API 明确支持这两种不同的方法。

更重要的是,我想知道:如果我们动态调用类,什么时候一种方法比另一种方法更可取?例如,访问私有(private)构造函数的目的是什么?

最佳答案

getDeclaredConstructors (当你想要 所有 构造函数时)



getConstructors (当你想要 时只有 public 构造函数)



所以,看的文档对他们俩的,我觉得不同的是,getConstructors只返回public构造而getDeclaredConstructors返回所有构造函数(publicprotected,默认(包)访问和private)

因此,如果您只需要 public 构造函数,那么使用 getConstructors 很容易。否则,如果您需要所有构造函数(忽略构造函数的访问修饰符),则使用 getDeclaredConstructors

关于java - Class API 中的 getDeclaredConstructors 和 getConstructors 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8249173/

10-13 07:45