Atitit.跨语言反射api 兼容性提升与增强 java c#。Net  php  js

1. 什么是反射1

1.1.       反射提供的主要功能:1

1.2.       实现反射的过程:1

2. 常用的反射api2

2.1. Apache  common-lang 。Reflect  5个类2

2.2. java.lang.reflect;   20个类2

2.3. C# 。Net反射api2

2.4. Php   ReflectionClass   ReflectionMethod 2

3. C# java的区别实现2

4. 参考3

1. 什么是反射

在运行时环境,能否根据一个类的名字,来得到这个类的属性和方法?对于任何一个运行时的对象能否动态调用这个对象的方法?答案是可以的。这种动态的获取类的信息以及动态调用一个对象的方法的机制叫做反射。

1.1.       反射提供的主要功能:

1.在运行时判断任意一个对象所属的类

2.在运行时构造一个类的对象

3.在运行时判断一个类所具有的属性和方法

4.在运行时调用一个对象的方法

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

1.2.       实现反射的过程:

1.加载一个类

2.根据这个类动态创建一个对象

3. 动态得到这个对象的方法

4.调用这个对象的方法

2. 常用的反射api

获取实例,调用方法,获取方法与属性集合。 获取注释  获取anno

2.1. Apache  common-lang 。Reflect  5个类

2.2. java.lang.reflect;   20个类

o = ConstructorUtils.invokeConstructor(

Class.forName(classname), null);

Object invokeMethod_ret = MethodUtils.invokeMethod(o, meth_name,

req);

2.3. C# 。Net反射api

2.4. Php   ReflectionClass   ReflectionMethod

$class = new ReflectionClass('Person');//建立 Person这个类的反射类

3. C# java的区别实现

不过在C#可以加载程序集Assembly.LoadFile("文件路径");,JAVA中好

像没有,因为JAVA最多也就打个JAR包。
在类的里面的方法,属性都可以用for或者foreach打印出来。

总结:

看来两种语言在互相学习,互相COPY,嘿嘿。竟然做一个反射,

思路一样的。只不过在JAVA中,用的是CLASS,而C#用的是TYPE。

继续努力,加油!!!

4. 参考

PHP的反射机制 - guisu,程序人生。 逆水行舟,不进则退。 - 博客频道 - CSDN.NET.htm

PHP的反射类ReflectionClass、ReflectionMethod使用实例_php实例_脚本之家.htm

JAVA反射与C#反射之比较 - 孤独游 - 博客频道 - CSDN.NET.htm

JAVA反射与C#反射_神秘猪_新浪博客.htm

Atitit.跨语言反射api 兼容性提升与增强 java c#。Net  php  js的更多相关文章

  1. Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案

    Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案 1. 跨语言db api兼容性..1 2. 目前访问数据库的接口很多.比较常用的jdbc odbc 以 ...

  2. atitit.跨语言执行cmd cli api的原理及兼容性设计草案

    atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c   ...

  3. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  4. Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面

    Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面 1. 常用算法1 1.1. 目录2 1.2. 定义和用法编辑2 1.3 ...

  5. Atitit.跨语言系统服务管理器api兼容设计

    Atitit.跨语言系统服务管理器api兼容设计 1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use ...

  6. Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216  java c# php js.docx

    Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216  java c# php js.docx 1.1. 预定义函数 魔术方法 魔术函数是什么1 1.2. & ...

  7. Atitit.跨语言异常转换机制 java c# php到js的异常转换

    Atitit.跨语言异常转换机制 java c# php到js的异常转换 1. bizEx   直接抓取,然后js catchEX1 2. Chkec runtimeEx1 3. Other异常..J ...

  8. Atitit.跨语言  文件夹与文件的io操作集合  草案

    Atitit.跨语言  文件夹与文件的io操作集合  草案 1. Jdk原生的太难用了..1 2. PS: apache commons-io包,FileUtils有相关的方法,IOUtils一般是拷 ...

  9. Atitit.提升api兼容性的方法 v3 q326

    Atitit.提升api兼容性的方法 v3 q326 1. Atitit.兼容性的“一加三”策略1 2. 2. 扩展表模式1 3. 3. 同时运行模式1 3.1. 3.1. 完美的后向兼容性2 3.2 ...

随机推荐

  1. HTTP状态代码集

    所有 HTTP 状态代码及其定义.   代码  指示     2xx  成功     200  正常:请求已完成.     201  正常:紧接 POST 命令.     202  正常:已接受用于处 ...

  2. IDEA的Maven项目找不到class

  3. [CF418E]Tricky Password

    题意:有一个无限行$n$列的数表$a_{i,j}$,对于第$i\geq2$行,$a_{i,j}$为$a_{i-1,j}$在$a_{i-1,1\cdots j}$中出现的次数,要维护这个数表,支持修改第 ...

  4. 【最大流】【费用流】bzoj1834 [ZJOI2010]network 网络扩容

    引用题解: 最大流+费用流. 第一问最大流即可. 第二问为“最小费用最大流”. 由题意,这一问的可转化为在上一问的“残量网络”上,扩大一些边的容量,使能从新的图中的最大流为k. 那么易得:对于还有剩余 ...

  5. python3 开发面试题(字典和拷贝)5.30

    """ 问:执行完下面的代码后, l,m的内容分别是什么? """ def func(m): for k,v in m.items(): m ...

  6. 支付宝签名验证实现-Delphi版

    支付宝签名验证实现-Delphi版 首先介结下支付宝签名验证流程: 一  支付宝密钥生成 支付宝提供秘钥生成工具https://docs.open.alipay.com/291/105971/ 用此下 ...

  7. 【java JVM】JVM中类的加载,加载class文件的原理机制

    暂时贴图一张,以后补充 解释: 1.符号引用替换为直接引用[参考:http://blog.csdn.net/maerdym/article/details/8087620] 在java中,一个java ...

  8. html5:localStorage储存

    实例:刷新值会增长,关掉浏览器,再打开,值会在原基础上增长 if(localStorage.pagecount){ localStorage.pagecount=Number(localStorage ...

  9. Linux中断(interrupt)子系统之一:中断系统基本原理

    这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层.内核版本基于3.3.虽然内核的版本不断地提升,不 ...

  10. Java获取日期属于当年第几周

    String today = "2013-01-14"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM- ...