BBS水木清华站∶精华区

发信人: alou (lou), 信区: Java        
标  题: Re: JAVA如何调用其他class和外部程序 
发信站: BBS 水木清华站 (Fri Sep 29 14:42:14 2000) 
 
【 在 zhgy (zhgy) 的大作中提到: 】 
 在一个类中要用到另一个类的方法,通常是在文件 
 头import进来,然后在用到时再new一个对象,我现在 
 希望我的一个类里有一个方法,该方法接受一个类名和 
 一个方法名,然后在在程序中动态的调用其他类的方法 
 而不要在文件头import该类,免得每引用一个类的方法就要 
 从新编译,如何实现呢? 
 另外在java里调c++的dll文件我也没试通,请各位大虾 
 指教! 
 多谢,多谢! 
 
下面是一个初级的例子,只能够调用无参数的方法。 
//C1.java,调用类。 
import java.lang.reflect.*; 
public class C1 

 public static void main( String argv[] ) 
 throws ClassNotFoundException, NoSuchMethodException, 
 InvocationTargetException, IllegalAccessException, InstantiationException 
 { 
  System.out.println( "C1!" ); 
  if( argv.length < 2 ) 
  { 
   System.out.println( "usage: java C1 <class> <method>" ); 
   return; 
  } 
  String className = argv[0], methodName = argv[1]; 
  Class destClass = Class.forName( className ); 
  Method method = destClass.getMethod( methodName, null ); 
  Object paras[] = new Object[0]; 
  method.invoke( destClass.newInstance( ), paras ); 
 } 

 
//C2.java,测试用的简单类。 
public class C2 

 public void pr( ) 
 { 
  System.out.println( "I am C2, who r u?" ); 
 } 
 public String pr1( ) 
 { 
  System.out.println( "I am another C2, who r u?" ); 
  return null; 
 } 

 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.112.101.154] 

BBS水木清华站∶精华区