【数据结构】反射

这篇具有很好参考价值的文章主要介绍了【数据结构】反射。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

🌟反射

🌈 1. 获取class对象的三种方式

🌈 2. 反射获取构造方法

🌈 3. 反射获取成员变量

🌈 4. 反射获取成员方法


🌟反射

        反射是非常重要的,没有反射就没有java的任何框架。我们在java中写代码IDEA会自动提示的功能也是利用了反射。反射允许对成员变量,成员方法和构造方法的信息进行编程访问。简单来说,就是可以从类中获取到成员变量,成员方法,构造方法。不过在获取之前,要先获取class对象。所以我们先俩看一下获取对象的方式有哪些~

问题:在java中创建一个对象有几种方式?

        new  clone   反射   序列化 

🌈 1. 获取class对象的三种方式

        Class类是反射的核心类,反射的入口。在JVM中,每个类都有一个唯一的class对象来描述该类的属性或者方法等。每个类的class对象有且只有一个,由JVM产生。每个类加载到JVM之后,由JVM产生这个类的class对象。

程序获取class对象的三种方式:

(1)Class.forName("类的全名称")   -> 最为常用

(2)类名称.class   -> 一般是当做参数进行传递

(3)对象.getClass()   ->当已有这个类的对象时,才可以使用

【数据结构】反射

 代码演示;

【数据结构】反射

 🌈 2. 反射获取构造方法

Class类中用于获取构造方法的方法:

【数据结构】反射

Constructor类中创建对象的方法:

(1) T newInstance(Object...initargs)
(2) setAccessible(boolean falg)

 代码演示:

【数据结构】反射

   🌈 3. 反射获取成员变量

Class类中用于获取成员变量的方法:

方法 用途
Field getField(String name)                     返回单个公共的成员变量对象
Field[] getFields() 返回所有公共成员变量对象的数组
Field getDeclaredField(String name) 返回单个成员变量对象
Field[]  getDeclaredFields() 返回所有成员变量对象的数组

 Filed类中用于创建对象的方法

(1) void set(Object obj,Object value);
(2) Object get(Object obj);

代码演示: 

【数据结构】反射

 🌈 4. 反射获取成员方法

Class类中用于获取成员方法的方法:

方法 描述
Method  getMethod(String name,Class<?>...ParameterTypes) 返回单个公共成员的方法对象
Method  getDeclaredMethod(String name,Class<?>...ParameterTypes) 返回单个成员方法对象
Method[] getMethods() 返回所有 公共成员方法对象的数组,包括继承的
Method[] getDeclaredMethods() 返回所有成员方法对象的数组,不包括继承的

Method类中用于创建对象的方法:

Object invoke(Object object,Object...args) :运行方法
(1) 参数1:用object对象调用该方法
(2)

参数2:覅用方法的传递参数,如果没有就不写

代码演示:使用到的Student类

【数据结构】反射

 获取方法:

【数据结构】反射

【数据结构】反射


 【数据结构】反射

 文章来源地址https://www.toymoban.com/news/detail-433877.html

到了这里,关于【数据结构】反射的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法 数据结构分类 数据结构类型介绍 数据结构线性非线性结构 算法合集 (一)

     数据结构分为:                            a.线性结构                            b.非线性结构  a.线性结构:                       数据与结构存在一对一的线性关系; a . 线性结构 存储 分为:                                   顺序存储

    2024年02月10日
    浏览(36)
  • 结构化数据、非结构化数据、半结构化数据

    结构化的数据一般是指可以使用关系型数据库表示和存储,可以用二维表来逻辑表达实现的数据。例如:需要多少个属性,每个属性什么类型,每个属性的取值范围等等,类似下图所示, 提前定义好了一个二维矩阵的元数据 ,包含有列名称、列的类型、列的约束等:   可见

    2024年02月09日
    浏览(44)
  • 【数据结构】何为数据结构。

    🚩 WRITE IN FRONT 🚩    🔎 介绍:\\\"謓泽\\\"正在路上朝着\\\"攻城狮\\\"方向\\\"前进四\\\" 🔎 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星TOP100|TOP63、阿里云专家博主、掘金优秀创作者、全网粉丝量6w+、全网访问量100w+ 🏅 🆔 文章内容由 謓泽 原创 如需相关

    2024年02月08日
    浏览(50)
  • 【数据结构】什么是数据结构?

    🦄 个人主页 :修修修也 🎏 所属专栏 :数据结构 ⚙️ 操作环境 : Visual Studio 2022 目录 🎏数据结构的定义 🎏结语 数据结构(Data Structure)是计算机 存储 , 组织数据的方式 ,指 相互之间存在一种或多种特定关系的数据元素的集合 . 这么讲可能有些抽象,放一张图大家可能好理解一

    2024年02月07日
    浏览(36)
  • 【数据结构(一)】初识数据结构

    ❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵 关注我带你学更多数据结构知识 数据结构是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合,从这篇文章开始,我们将一起进入数

    2024年04月09日
    浏览(47)
  • 数据结构和算法——数据结构

    目录 线性结构  队列结构的队列 链表结构的队列 链表的面试题 单向链表应用场景 约瑟夫环问题 栈结构 中缀表达式 前缀表达式 后缀表达式 非线性结构 图 递归解决迷宫问题 递归解决八皇后问题 顺序存储方式,顺序表 常见的顺序存储结构有:数组、队列、链表、栈 链式存

    2024年02月07日
    浏览(40)
  • 【数据结构】数据结构中的栈

    该篇文章来了解数据结构中的 栈 ,栈与队列都为一种线性存储结构,同时栈与队列在逻辑结构上,都只能在头或者尾进行对数据的操作; 栈是一种 LIFO(Last in,First out)的结构 ,翻译过来即是 后进先出的一种结构 ;栈无论是出数据还是入数据都 只能从栈顶位置按顺序进行

    2024年02月05日
    浏览(37)
  • 数据结构学习之数据结构绪论

      《大话数据结构》是程杰老师著作的一本书,作者将跟着程杰老师写的这本书,记录自己数据结构学习之旅。   数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。   我的理解,数据结构就是数据和数据之

    2024年02月04日
    浏览(76)
  • 数据结构与算法 --- 数据结构绪论

    早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。 可现实中,我们更多的不是解决数值计算的问

    2024年02月14日
    浏览(40)
  • 数据结构(王道)——数据结构之 树

           树的概念补充: 结点之间的关系描述    结点、树的属性描述: 有序树、无序树: 1、第i层至多有m^(i-1)个结点 2、高度为h的m叉树至多有(m^h-1)/(m-1)个结点   3、高度为h的m叉树至少有h个结点 高度为h,度为m的树至少有h+m-1个结点   4、具有n个结点的m叉树的最小高度

    2024年02月17日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包