快速业务通道

Java中Class类工作原理详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
.zj.sample.Point.output()

Java中Class类工作原理详解(5)

时间:2010-03-27

9.动态调用一个类的实例(完全没有出现point这个名字)

package com.zj.sample; import java.lang.reflect.Constructor; import java.lang.reflect.Method; class Point {   static {     System.out.println("Loading Point");   }   int x, y;   void output() {     System.out.println("x=" + x + "," + "y=" + y);   }   Point(int x, int y) {     this.x = x;     this.y = y;   } } class ClassTest {   public static void main(String[] args) {         try {       Class c = Class.forName("com.zj.sample.Point");       Constructor[] cons = c.getDeclaredConstructors();       Class[] params = cons[0].getParameterTypes();// 察看构造器的参数信息       Object[] paramValues = new Object[params.length];// 构建数组传递参数       for (int i = 0; i < params.length; i++) {        if (params[i].isPrimitive())// 判断class对象表示是否是基本数据类型        {          paramValues[i] = new Integer(i);        }       }       Object o = cons[0].newInstance(paramValues);// 创建一个对象的实例       Method[] ms = c.getDeclaredMethods();// 调用方法       ms[0].invoke(o, null);// 用指定的参数调用(output方法没有参数,null)     } catch (Exception e) {       e.printStackTrace();     }  } }

结果:

Loading Point

x=0,y=1

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号