这篇小博客有这么些内容~认识何使用java反射机制的心路历程

什么是java反射机制呢?什么时候会用到java反射机制呢?怎么使用java反射机制呢?


那我们开始吧~

(一)反射机制(Reflection)

JAVA反射机制_百度百科(你不打算戳戳看吗?)

java反射机制让Java这个静态语言变得格外突出,反射机制可以让java在运行过程中动态的调用类里面的属性和方法,可以动态的调用对象的方法。

*在度娘解释里动态语言和静态语言这两个词瞩目

所以静态语言和动态语言的区别 - raindi - 博客园。

静态在编译的时候一个变量的类型由它的定义决定,而动态语言实在于运行时可以根据上下文来确定变量的类型

(二)为什么要用反射机制呢?

反射机制可以让java在运行的时候获得某个类的结构、成员变量,用来实例化。Java的反射机制它知道类的基本结构,这种对Java类结构探知的能力,我们称为Java类的“自审”。这种自审机制就像用eclipse的时候--对象.XXX的时候编译工具会跳出这个对象对应的的属性和方法,就是自审机制。nice

(三)怎么使用java反射机制呢?

1.Class类
什么是Class类呢?
在java语言里,类是java.lang.Class的实例化对象(Class大写C),那么就可以说我创建一个对象比如学生就是Class类的对象,“学生”本身也是类。

2.反射

现在想用java的反射机制来访问“学生”类我可以这样声明

  public class Domo {public void f() {//声明学生对象1Student ni = new Student();//声明学生对象2Class a = Student.class;//也就是每一个对象都有一个class属性//声明学生对象3Class b = ni.getClass();//通过已知对象来获得对应的类;//声明学生对象4try {Class c3 = Class.forName("one.Student");//找到类的路径} catch (ClassNotFoundException e) {e.printStackTrace();}}public static void main(String[] args) {// TODO Auto-generated method stub}}

这里的abc都是类都表示了Student的类类型,那么abc是否相等呢?

实践输出“a==b”返回值是true可见一个类只能是一个Class的实例对象。

-----1通过http://a.b.cc创建实例化对象

通过a,b,c的newInstance来创
try {Student a1 =(Student)a.newInstance();} catch (InstantiationException | IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}         

-----2调用对象的方法

通过调用对象的方法,方法其实也是实例化对象,它是Method的实例化对象。

  Method[] ms = c.getMethods();//获得类里面的方法;for(int i = 0; i < ms.length;i++){//然后可以得到方法的名称System.out.print(ms[i].getName()+"   ");}

获得对象的参数,和获得方法一样,属性也有它的类-》Field

Field[] fs = c.getDeclaredFields();//可以这样获得方法,这里的方法不管是私有还是共有都可以获取

-----3对象的构造函数

同理构造函数也有它的类-》Constructor

Constructor[] cs = c.getDeclaredConstructor;//获取它的全部构造函数


谈谈Java反射机制~我有认真看他的博客

Java基础之-反射(非常重要) - CSDN博客~

转载于:https://www.cnblogs.com/ttnrt/p/11086554.html

初识java反射机制相关推荐

  1. 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换

    作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上 ...

  2. Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...

    Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn   发布于:2012-09-15 ...

  3. Java反射机制分析指南

    一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...

  4. 反射 字段_详解面试中常考的 Java 反射机制

    反射(Reflection) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性和方法. 反射是一项高级 ...

  5. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...

    方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...

  6. java基础-java反射机制

    2019独角兽企业重金招聘Python工程师标准>>> 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩" ...

  7. 利用java反射机制进行对象操作

    我们经常使用COMMONS-BEANUTILS包来进行bean的操作,例如从map到bean获从bean到map的映射,那么实现的原理是什么呢,下面举个简单的操作的例子:首先,我建立一个bean pu ...

  8. java反射机制知识_Java反射机制讲解,程序员必须掌握的知识点

    关注程序员7歌,一起用技术改变世界 大家好,我是程序员7歌,今天我为大家讲解Java的反射机制. 首先我们来看看反射的概念: Java反射说的就是在程序运行中,任何一个类,我们都可以知道这个类的方法和 ...

  9. java继承 映射_hibernate继承关系映射和java反射机制的运用

    转:http://blog.csdn.net/derpvailzhangfan/article/details/1957946 ,感谢博主分享 Notes:hibernate元数据的运用:uuid的概 ...

最新文章

  1. 百度推送 android7.1,【SDK版本更新】Android SDK 5.7.1
  2. [bzoj 1954]Pku3764 The xor-longest Path
  3. docker安装mysql及相关配置、运行细节和常见报错解决方案
  4. java2ee和java2se_Java知识:(2)JavaSE和JavaEE
  5. HH SaaS电商系统的供应商系统设计
  6. python经典100例(41-60)
  7. 获取date等于某一天的第一个id sql_leetcode(sql)之经典困难题合集
  8. antdesign 地图_React 使用recharts实现散点地图的示例代码
  9. 使用ASP.NET Core MVC的Vue.Js
  10. (第二章)mysql创建数据库
  11. English trip V1 - 20.Look at me 看着我 Teacher:Solo Key: 声调(英语默认就声调[rising]和降调[falling]两种)...
  12. 一样的Java,不一样的HDInsight大数据开发体验
  13. Java(TM) Platform SE binary已停止工作
  14. 刷题:牛客-快速入门篇
  15. Ubuntu18.04创建WiFi热点
  16. 终于打通了《火焰之纹章——烈火之剑》
  17. JavaScript-switch条件分支语句
  18. 静态页面笔记包括 html和css
  19. matlab离散点数字微分,MATLAB数值积分与微分
  20. android记账本折线图_Android Studio——记账本以及图表可视化实现

热门文章

  1. Cassandra 原理介绍
  2. 小白学python系列-(4)list
  3. 在不使用notifyDataSetChanged()方法,怎样选中Item中的内容
  4. WCF一个运行环境,一个服务逻辑人,一个客户
  5. XML Schema用法
  6. 查看本机中的python第三方库文档
  7. Verilog中`define和parameter有什么区别
  8. DSP集成开发工具CCS的Git工具使用说明(三)
  9. 给小白图示讲解OFDM的原理
  10. matplotlib全图