JAVA problem
登录 | 论坛导航 -> 华新鲜事 -> 社会百科 | 本帖共有 7 楼,当前显示第 5 楼 : 从楼主开始阅读 : 本帖树形列表 : 返回上一页
作者:我心为谁动 (等级:3 - 略知一二,发帖:515) 发表:2003-06-02 20:46:03  5楼  评分: 
你是要这样吗?File Name: Test.java -------------------------------------------- import java.io.*; import java.lang.reflect.Method; public class Test { public static void main(String args[]) throws Exception { new Test(args[0], args[1]); } public Test (String className, String methodName) throws Exception { Class c = Class.forName(className); Method m = c.getMethod(methodName, null); m.invoke(this, null); } } File Name: MyClass1.java ----------------------------- public class MyClass1 { public static void testMethod () { System.out.println("My Name is MyClass1"); } } File Name: MyClass2.java ---------------------------- public class MyClass2 { public static void testMethod () { System.out.println("My Name is MyClass2"); } } 以上code, 运行结果如下 >>java Test MyClass1 print >>My Name is MyClass1 >>java Test MyClass2 print >>My Name is MyClass2 不过这个里面的modifier和static keyword好像有要求, 以上public+static的组合是没问题的, 不过其他的好像不可以。
另一个办法, 有前提的
如果要调用的class们有相同的method, 如public static void print(), 一般来说这些class都是某一个parent class的children,
并且这些class的总数不多, 可以如下办

设class们是 Child1, Child2, Child3..., parent class is Parent, method是print,

Parent anObject = however_you_created_it;
if (anObject instanceof Child1)
Child1.print();
else if (anObject instanceof Child2)
Child2.print();
...
...
...
Put your OWN COOL signature here!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表

本帖共有 7 楼,当前显示第 5 楼,本文还有 N-1 层楼,要不你试试看:点击此处阅读更多 >>



请登录后回复:帐号   密码