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

区别一

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

区别二

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

区别三

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

 

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

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

posted @ 2019-03-27 10:01  手握钢叉的猹  阅读(1781)  评论(0编辑  收藏  举报