Java中类的显式动态加载的两种方式

一、利用Class.froName方法

eg:
  try {
   Class cl = Class.forName("edu.buaa.etei.wsrv.test.SonClass");
   FatherClass cls = (FatherClass) cl.newInstance();
   cls.test();
  } catch(Exception   e   ){}

二、结合Java的反射机制

eg:

import   java .lang.reflect.*;   
    
      Stirng   className   =   "test.Test";   

      try   {  
   
              Class   cla   =   Class.forName(className);   

              //   得到test()方法的调用入口。
              Method   method   =   cla.getMethod("test",   null);  

              //   用invoke执行test方法,ret是返回值(如果test方法返回void,则ret==null) 
              Object   ret   =   method.invoke(cla.newInstance(),   null   );  
   
      }catch(Exception   e   ){}

说明:

Method的invoke就好比是c语言中获得方法的指针一样!  
  一般步骤是,首先声明你所要调用方法的参数的类类型数组  
  如果你的方法要使用一个int型数据作为参数,那么  
  Class[]   args={Integer.class};  
  然后,使用classname加载该类Class   myclass1   =   Class.forName("aaa");  
  接着Method   mymethod1   =   myclass1.getMethod("methodname",args);  
  最后声明方法参数Object   args2={new   Integer(5)};  
  mymethod1.invoke(myclass1.newInstance(),args2);就可以了 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值