java

所起java反射,我们知道应用最多的是spring和hibernate的声明式事务的管理。spring中通过AOP来控制对象的创建和销毁。

所起反射首先要提起的就是Class对象,他是类的字节码,里面包含了类的签名,方法,域等必要的信息。Class对象的获取有三种方式:

//获取Class对象的三种方式
Class clazzOne = Student.class;
Class clazzTwo = Class.forName("com.gao.test.reflectTest.Student");

Student student = new Student();
Class clazzThree = student.getClass();


Class对象创建完成后首先我们来看看通过反射构造对象的两种方式:
1.通过Class.newInstance()来调用类的无参构造器来构造对象:

//通过调用类的无参构造器来创建对象,
//如果你把Student的无参构造器设置成了private则会抛出异常
//如果你任然想要通过调用private构造器来构造对象,则应该用第二种方法
Object first = clazzOne.newInstance();

2.通过constructor的方式来构造对象

//如果想调用构造器的是无参的且是public的修饰符,则可以通过以下方式构造对象
Constructor constructor = clazzOne.getConstructor(null);//null表示它是一个无参的构造器,
Object second = constructor.newInstance(null);//不接受任何参数

//如果构造器是非public的无参构造器
Constructor constructorTwo = clazzOne.getDeclaredConstructor(null);
if(!constructorTwo.isAccessible()){
constructorTwo.setAccessible(true);
}
Object third = constructorTwo.newInstance(null);
constructorTwo.setAccessible(false);

//如果是通过构造器是有参数的,public构造器来构造对象
Constructor constructorThree = clazzOne.getConstructor(/**这里是构造器的参数对应class比如:<code>String.class,String[].class</code>*/);
Object fourth = constructorThree.newInstance(/**这里是传入的参数,具体的值 */);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值