文章目录

  • 1.概念
    • 1.1创建类的对象
      • 1.1.1 调用Class对象的newInstance()方法
      • 1.1.2没有无参的构造器就不能创建对象了吗?
  • 2.实例
    • 2.1代码
    • 2.2要点

有了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,那么构造是无法成功的。
    因此,创建类时尽量保留空参的构造器

创建运行时类的对象--Class.newInstance()相关推荐

  1. 【Java 19】反射 - 反射机制概述、获取Class实例、类的加载与ClassLoader的理解、创建运行时类的对象、获取运行时类的完整结构、调用运行时类的指定结构、动态代理

    反射机制概述.获取Class实例.类的加载与ClassLoader的理解.创建运行时类的对象.获取运行时类的完整结构.调用运行时类的指定结构.动态代理 反射 1 Java反射机制概述 1.1 Java ...

  2. 通过反射--操作运行时类中的指定的属性/方法

    操作运行时类中的指定的属性: 1.getDeclaredField(String fieldName):获取运行类中指定变量名的属性: 2.保证当前属性时可访问的 : 属性.setAccessible ...

  3. ObjectARX运行时类信息实现原理

    新公司维护基于CAD的二次开发旧代码.学习ObjectARX相关的内容. 先看原始代码 class MyClass: public AcRxObject { public:virtual AcRxCl ...

  4. [转载]深入探索.NET框架内部了解CLR如何创建运行时对象

    深入探索.NET框架内部了解CLR如何创建运行时对象 发布日期: 9/19/2005 | 更新日期: 9/19/2005 Hanu Kommalapati Tom Christian 本文讨论: • ...

  5. java获取运行时对象,java 面向对象(四十一):反射(五)反射应用二:获取运行时类的完整结构...

    我们可以通过反射,获取对应的运行时类中所有的属性.方法.构造器.父类.接口.父类的泛型.包.注解.异常等.... 典型代码: @Test public void test1(){ Class claz ...

  6. Java基础知识点__获取运行时类的完整结构

    通过反射获取运行时类的完整结构 Field,method,Construuuctor,Superclass,Interface,Annotation 实现的全部接口 继承的父类 全部的构造器 全部的构 ...

  7. 【MFC学习】运行时类信息机制

    作用 在程序运行过程中可以获知对象的类的相关信息:机器知道 运行时类信息机制使用 类必须派生自CObject 类内必须添加声明宏 DECLARE_DYNAMIC(theClass) 类外必须添加实现宏 ...

  8. 2020 idea 查看内存消耗_查看运行时某个java对象占用JVM大小及通过idea查看java的内存占用情况...

    一.如果想看运行时某个java对象占用JVM内存大小,可以先将对象转换成字节类型,然后计算: List bizGroupRelatedEventInfos = bizEventVersionMappe ...

  9. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

  10. 3704对象关闭时_运行时出现了“对象关闭时不允许操作”实时错误3704,请问大家怎么改呢?...

    运行时出现了"对象关闭时不允许操作"实时错误3704,请问大家怎么改呢? Option Explicit'这是公共模块 Public adocon As ADODB.Connect ...

最新文章

  1. Nacos 1.3.0 发布, 全新内核构建
  2. php 5.4.36 sqlserver,PHP:PHP5.4连接SQLSERVER
  3. 【 FPGA 】时序分析中的基本概念和术语
  4. 如何使用Visual Studio Code作为Git的默认编辑器
  5. jfinal mysql增删改查_Jfinal简单实现增删改查
  6. 谁是谁的first-child
  7. 详解Vue中watch的高级用法
  8. impala和mysql语法,impala CREATE TABLE语句
  9. ASP.NET Core——身份验证UI安装
  10. 【已解决】onenote无法正常打印怎么办?
  11. [PyTorch] autograd 自动求导
  12. 【jQuery 遍历】 - map() 方法
  13. 多个项目共用同一个redis_比Redis快5倍的中间件,为啥这么快?
  14. WIN10网络共享文件夹实战
  15. IOS github客户端操作流程 超详细
  16. 谷歌传奇Jeff Dean获2021年IEEE冯诺依曼奖,8页本科论文被大学图书馆保存至今
  17. 2022年北京航空航天大学计算机考研复试时间与复试内容
  18. 软件安全备考--PE文件
  19. python遍历文件夹以及排序问题
  20. 计算机组成原理实验报告一静态随机存储器

热门文章

  1. iOS开发UI篇--仿射变换(CGAffineTransform)使用小结
  2. C++ 对Ctrl+Z的解释
  3. java怎么用一行代码初始化ArrayList
  4. 案例 - 收藏集 - 掘金
  5. Gprinter Android SDK V2.1 使用说明
  6. flink开发案例_Flink 在人工智能领域的应用实践
  7. 6. Keras-RNN应用
  8. python3-pwntools教程_CTF PWN工具篇1
  9. 发那科oimf是什么时候出的_请问下FANUC Oi-MF系统怎么把卡里的程序传到机床里面?...
  10. 万兆网口和千兆网口区别_万兆网卡的安装 以及注意事项