作者runtime (会写程式 找不到工作)
看板java
标题Re: [问题] 有没有可能做到类似函式指标的功能?
时间Tue May 18 21:58:32 2010
※ 引述《ciphero (奶油焗蛋饺...:))》之铭言:
(略)
: 以上是一段简单易懂的程式码,想要呼叫什麽 Method,就输入那个方法当作参数就好
: 但是缺点是相当难以维护,
: 只要我新增了一个 printD() 方法,也就必须要在 main() 里面加上:
: else if(argv[0]=="printD") abc.printD();
: 这一段 code 才行,相当不方便
: 理想的程式,应该是新增了任何 printX() 之後,在 main() 里面并不需要另外做修改
: 这个目标,在 C 语言里可以经由函式指标来达到,但是 JAVA 没有办法这麽做
: 不知道是否有其他的解法?
刚刚在查一些关於指标的问题
意外发现这篇 顺便回覆一下
Code很短 是对原PO的Sample稍作修改後的结果
应该不用详注
使用 reflection 的方法 :
import java.lang.reflect.*;
public class test {
public static void main(String argv[]) throws Exception {
Class tmp = Class.forName("ABC");
tmp.getMethod(argv[0]).invoke(null);
}
}
class ABC {
public static void printA() {
System.out.println("这是 printA().");
}
public static void printB() {
System.out.println("这是 printB().");
}
public static void printC() {
System.out.println("这是 printC().");
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.22.21.156
※ 编辑: runtime 来自: 163.22.21.156 (05/18 22:06)
1F:→ AmosYang:我的印像是reflection颇伤perf. 但没实际测过不知差多少 05/19 05:54