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

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.csdn.net/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,程序人生。 逆水行舟,不进则退。 博客频道 - CSDN.NET.htm

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

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

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

原文地址:https://www.cnblogs.com/attilax/p/15198758.html