我注意到在 Java 反射 API 中有两种不同的调用构造函数的方法:getDeclaredConstructors
/getConstructors
方法。尽管 Java 文档略有不同( getDeclaredConstructors
似乎暗示它返回所有构造函数,而不是公共(public)构造函数),但不清楚为什么 API 明确支持这两种不同的方法。
更重要的是,我想知道:如果我们动态调用类,什么时候一种方法比另一种方法更可取?例如,访问私有(private)构造函数的目的是什么?
最佳答案
getDeclaredConstructors
(当你想要 所有 构造函数时)
getConstructors
(当你想要 时只有 public
构造函数)
所以,看的文档对他们俩的,我觉得不同的是,getConstructors
只返回public
构造而getDeclaredConstructors
返回所有构造函数(public
,protected
,默认(包)访问和private
)
因此,如果您只需要 public
构造函数,那么使用 getConstructors
很容易。否则,如果您需要所有构造函数(忽略构造函数的访问修饰符),则使用 getDeclaredConstructors
。
关于java - Class API 中的 getDeclaredConstructors 和 getConstructors 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8249173/