最近项目中遇到一个问题,不用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文件放到包对应的文件夹下,也可以执行到,类似于插件,具体未验证。
新闻热点
疑难解答