反射中getDeclaredConstructors和getConstructors两个方法的区别,然后setAccessible什么时候用,作用是什么?

1. getDeclaredConstructors和getConstructors的区别

1.1 getDeclaredConstructors和getConstructors都能得到默认的public构造函数

1.2 getDeclaredConstructors可以得到所有访问权限的构造函数;getConstructors只能得到public修饰的构造函数

 

2. setAccessible

2.1 代码和目录结构

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Eclipse 是目前功能比较强大的JAVA IDE(JAVA编程软件),是一个集成工具的开放平台,而这些工具主要是一些开源工具软件。在一个开源模式下运作,并遵照共同的公共条款,Eclipse 平台为工具软件开发者提供工具开发的灵活性和控制自己软件的技术。 Eclipse已经围绕着免版权费技术和通用平台,为工具集成开发形成了一个独立的开放的“生态系统”。以Eclipse为基础的工具允许开发者自由选择语言,平台和厂商环境。 Eclipse提供了一个以插件为基础的框架,让你可以轻松创建,集成和使用工具软件,节省了大量时间和金钱。通过合作和一体化开发核心技术,软件工具开发者可以利用平台的重复使用功能,专注于核心技术,创建新的开发技术。 JBuilder, Eclipse, Neebeans 是3种应用比较普遍的Java开发的平台,如果你以后想走java这条路,最好学会EcLIPSE。jcreator功能太简单,不好用,JBUILDER太庞大,不好学。查看Eclipse快捷键指南。 Eclipse的平台是基于Java语言编写,并包含大量的插件创建工具以及实例。它已经在大范围的开发工作站上应用,包括Linux,HP-UX,AIX,Solaris,QNX,Mac OS X,以及Windows平台的系统。 "分享一个在Java反射获取私有构造函数、属性、方法" 我一直以为类的私有构造函数、属性、方法除了类自身其他类是无法访问的,前几天正好学习Spring框架,在学习Spring框架基础 Bean包时,写了一个简单的例子,类似如下:   package study.spring.bean;    public class SimpleBean   {   private String beanName;   private SimpleBean() {   System.out.println( " SimpleBean " );   }   /** */ /**   * @return Returns the beanName.   */   public String getBeanName()   {   return beanName;   }   /** */ /**   * @param beanName The beanName to set.   */   public void setBeanName(String beanName)   {   this .beanName = beanName;   }   }   发现居然也能调用成功,当时很惊讶,反射机制平时在以前的项目也常使用,但不能构造只有私有构造函数的类。   自己做了一个简单例子:   package study.spring.bean;   import java.lang.reflect.Constructor;   import java.lang.reflect.InvocationTargetException;   public class SimpleTest   {   /** *//**   * @param args   */   public static void main(String[] args)   {   // TODO Auto-generated method stub   try   {    Constructor[] cts=Class.forName("study.spring.bean.SimpleBean").getDeclaredConstructors();   for(int i=0;i<cts.length;i++){    cts[i].newInstance(null);   }   }   catch (SecurityException e)   {   // TODO Auto-generated catch block   e.printStackTrace();   }   catch (ClassNotFoundException e)   {   // TODO Auto-generated catch block   e.printStackTrace();   }   catch (IllegalArgumentException e)   {   // TODO Auto-generated catch block   e.printStackTrace();   }   catch (InstantiationException e)   {   // TODO Auto-generated catch block   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值