当前位置:   article > 正文

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

clazz.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);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

2.2要点

  • 必须要有空参构造器
    因为newInstance()方法调用的就是构造对象的空参构造器
  • 权限要足够
    如果空参构造方法是private,那么构造是无法成功的。
    因此,创建类时尽量保留空参的构造器
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/431235
推荐阅读
相关标签
  

闽ICP备14008679号