最近項目中遇到一個問題,不用if else 或者 switch 動態選擇類執行方法。
首先定義一個接口BaseDeal,接口中定義deal方法,假設deal方法返回值int
TestDeal1和TestDeal2分別實現BaseDeal接口
String mark = "TestDeal1";
BaseDeal deal = (BaseDeal) Class.forName("你的包名,即package"+mark).newInstance();
int result = deal.deal();
即實現了動態選擇類執行。
ps:好像將編譯后的class文件放到包對應的文件夾下,也可以執行到,類似于插件,具體未驗證。
新聞熱點
疑難解答