我注意到在Java Reflection API中有两种不同的方法来调用构造函数:
更重要的是,我想知道:如果我们动态地调用类,何时会出现一种方法优于另一种方法的情况?例如,访问私有构造函数的目的是什么?
getDeclaredConstructors
/ getConstructors
方法。尽管Java文档略有不同(getDeclaredConstructors
似乎意味着它返回所有构造函数,而不仅是公共构造函数),但并不清楚为什么API明确支持这两种不同的方法。更重要的是,我想知道:如果我们动态地调用类,何时会出现一种方法优于另一种方法的情况?例如,访问私有构造函数的目的是什么?
getConstructors
不会返回此默认构造函数,但getDeclaredConstructors
会返回它。 - neXusgetDeclaredConstructor()
和getConstructor()
都返回编译器创建的(默认)构造函数。所以我认为你的猜测可能是正确的,@MarcoServetto。 - Per Lundberg