创建运行时类的对象--Class.newInstance()


有了Class类,我们不禁想问问自己,他可以有什么作用呢???
先用他来创建类对象

1.概念

1.1创建类的对象

1.1.1 调用Class对象的newInstance()方法

  • 类必须有一个无参数构造器
  • 类的构造器的访问权限需要足够

1.1.2没有无参的构造器就不能创建对象了吗?

不是的,只要在操作的时候明确的调用类中的构造方法,并将参数传递进去之后,才可以进行实例化操作。

  • step1
    通过Class类的getDeclaredConstructor(Class … parameterTypes)取得本类的指定形参类型构造器
  • step2
    向构造器的形参中传递一个对象数组进去,里面包含了构造器所需要的各个参数
  • step3
    在Constructor类中存在一个方法

2.实例

2.1代码

public void test1() throws Exception{
    	String className="test.Person";
    	Class clazz=Class.forName(className);
    	Object obj=clazz.newInstance();
    	Person p=(Person)obj;
    	System.out.println(p);
    }

在这里插入图片描述

2.2要点

  • 必须要有空参构造器
    因为newInstance()方法调用的就是构造对象的空参构造器
  • 权限要足够
    如果空参构造方法是private,那么构造是无法成功的。
    因此,创建类时尽量保留空参的构造器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值