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

本文介绍了如何使用Java反射机制通过Class.forName方法动态加载类并实例化对象,进一步通过反射调用对象的方法,包括获取方法调用入口及执行指定方法的具体步骤。

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

一、利用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);就可以了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值