Java中getConstructors()、getDeclaredConstructors()、getConstructor(Class<?>... parameterType)、getDeclaredConstructor(Class<?>... parameterType)的区别

区别一

  在方法名末尾有s的是返回一个数组,没有s的是返回单个构造器。

区别二

  在方法名中加Declared的是返回所有的构造方法,不加Declared的只返回public访问权限的构造器

区别三

  有参数的都是在方法名中没有在结尾处加s的,返回的是指定参数类型的构造器

总结:反射机制中,所有添加Declared的获取方式都是暴力获取所有构造(或方法,或字段),通过暴力获取的字段我们在进行访问的时候需要进行可访问性设置,即

获取的反射对象.setAccessible(true);否则只是获取而无法操作。

原文地址:https://www.cnblogs.com/kitor/p/10605541.html