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

本文探讨了反射的概念及其在Java、C#、PHP、JS等语言中的应用,包括如何通过反射动态获取类信息、构造对象、调用方法等核心功能。详细介绍了常用反射API的使用,并对比了不同语言在实现反射时的异同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

3C# java的区别实现2

4参考3

 

1. 什么是反射

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

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

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

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

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

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

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

转载请注明来源: http://blog.youkuaiyun.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(ometh_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,程序人生。 逆水行舟,不进则退。 博客频道 - youkuaiyun.com.htm

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值