Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
2.1. Apache common-lang 。Reflect 5个类2
2.4. Php ReflectionClass ReflectionMethod 2
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的更多相关文章
- Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案
Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案 1. 跨语言db api兼容性..1 2. 目前访问数据库的接口很多.比较常用的jdbc odbc 以 ...
- atitit.跨语言执行cmd cli api的原理及兼容性设计草案
atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件 /c ...
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- 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 ...
- Atitit.跨语言系统服务管理器api兼容设计
Atitit.跨语言系统服务管理器api兼容设计 1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use ...
- Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx
Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx 1.1. 预定义函数 魔术方法 魔术函数是什么1 1.2. & ...
- Atitit.跨语言异常转换机制 java c# php到js的异常转换
Atitit.跨语言异常转换机制 java c# php到js的异常转换 1. bizEx 直接抓取,然后js catchEX1 2. Chkec runtimeEx1 3. Other异常..J ...
- Atitit.跨语言 文件夹与文件的io操作集合 草案
Atitit.跨语言 文件夹与文件的io操作集合 草案 1. Jdk原生的太难用了..1 2. PS: apache commons-io包,FileUtils有相关的方法,IOUtils一般是拷 ...
- Atitit.提升api兼容性的方法 v3 q326
Atitit.提升api兼容性的方法 v3 q326 1. Atitit.兼容性的“一加三”策略1 2. 2. 扩展表模式1 3. 3. 同时运行模式1 3.1. 3.1. 完美的后向兼容性2 3.2 ...
随机推荐
- 10、Django实战第10天:找回密码
今天完成的功能是:用户忘记密码后,通过注册邮箱重置密码... 首先还是把前端页面准备好,把forgetpwd.html复制到templates目录下 编辑users.views.py,创建一个忘记密码 ...
- ASP.NET Core 2.2 基础知识(五) 环境
一.环境变量 系统启动时,会读取环境变量 ASPNETCORE_ENVIRONMENT ,并将该变量的值存储在 IHostingEnvironment.EnvironmentName 字段中.如: 新 ...
- WordPress插件扫描工具plecost
WordPress插件扫描工具plecost WordPress是PHP语言开发的博客平台.该平台允许用户通过插件方式扩展博客功能.由于部分插件存在漏洞,给整个网站带来安全风险.Kali Linu ...
- Python RE模块中search()和match()的区别
match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配: 也就是说match()只有在0位置匹配成功的话才有返回, 如果不是开始位置匹配成功的 ...
- python中json与dict之间转换
Python之dict(或对象)与json之间的互相转化 在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作. 在Python中自带json库.通过import js ...
- SonarQube分析报告无法上传的问题
'); 由于SonarQube5.6 api/ce/submit 接口报以下异常,导致jenkins构建结果显示为失败~: Caused by: java.lang.NullPointerExcept ...
- debian6 安装VirtualBox的方法
方法一: 参考: https://www.virtualbox.org/wiki/Linux_Downloads 更新sources.list deb http://download.virtu ...
- centos搭建git服务器(转)
一:git服务安装 1.安装git相关组件 [root@gitserver ~] yum -y install git 2.创建git用户 [root@gitserver ~] groupadd gi ...
- http://www.oschina.net/question/1019034_153316
http://www.oschina.net/question/1019034_153316 http://www.oschina.net/question/97503_212116?sort=tim ...
- scrapy-splash抓取动态数据例子十六
一.介绍 本例子用scrapy-splash爬取梅花网(http://www.meihua.info/a/list/today)的资讯信息,输入给定关键字抓取微信资讯信息. 给定关键字:数字:融合:电 ...