易截截图软件、单文件、免安装、纯绿色、仅160KB

java中的反射机制

1)概念:
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
2)功能:
     在运行时判断任意一个对象所属的类;
     在运行时构造任意一个类的对象;
     在运行时判断任意一个类所具有的成员变量和方法;
     在运行时调用任意一个对象的方法;
     生成动态代理。
3)获得某个对象的具体属性:
Class ownerClass = owner.getClass():得到对象owner的Class。
Field field = ownerClass.getField(fieldName):通过Class得到类声明的属性。
Object property = field.get(owner):通过对象得到该属性的实例,如果这个属性是非公有的,这里会报IllegalAccessException。如果需要访问到对象的private属性,需要首先调用:AccesibleObject.setAccessible(Field名字,true);
如果说是获取Class的静态属性:则第三句换成Object property=field.get(Class名字),而不是用实例的名字。
4)执行某个对象的方法:
public Object invokeMethod(Object owner, String methodName, Object[] args) throws Exception {
     Class ownerClass = owner.getClass();
     Class[] argsClass = new Class[args.length]; 
     for (int i = 0, j = args.length; i < j; i++) {
          argsClass = args.getClass();
      }
      Method method = ownerClass.getMethod(methodName, argsClass);
      return method.invoke(owner, args);
}
如果是执行某个类的静态方法:method.invoke(null, args);
5)新建某对象的实例:
public Object newInstance(String className, Object[] args) throws Exception {
     Class newoneClass = Class.forName(className); 
     Class[] argsClass = new Class[args.length];  
     for (int i = 0, j = args.length; i < j; i++) {
 &nb


相关文档:

认识理解Java中native方法

Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。
  可以将native方法比作Java程序同C程序的接口,其实现步骤:
  1、在Java中声明native()方法,然后编译;
  2、用javah产生一个.h ......

Java中抽象类和接口的区别

Abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstractclass和interface的选择显得比较随意。其 ......

java如何获取真实的IP

如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,
                   那么可以获取客户端的真实IP地址request.getRemoteAddr()
如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,
 &nbs ......

知识小记(java)

1)客户端是.net调用服务端用java写了一个webservice
用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型、double和DateTime类型的值(在服务端得到的均为null)
解决办法:
VS2005封装WebService引用时,如果 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号