在项目实践当中经常需要用到多个分支的需求,最常用的就是if/else结构,如果分支较多时,应该都能想到使用swich/case结构,但是有些时候分支太多,有几十个甚至上百个分支,这种情况下,再使用该结构处理,代码就显得有点不优雅了,也不利于项目的后期维护和升级,在java中用反射机制就能很好地解决此类问题,很优雅的去掉了所有的swcih/case结构。实现过程如下:
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class MyTest {
private Position position;
public MyTest() {
System.out.println("调用了无参数构造函数");
}
public MyTest(Position position) {
System.out.println("调用了带参数构造函数");
this.position = position;
}
private void fun() {
System.out.println("调用了fun函数" + " pos: " + position.getX() +" "+position.getY());
}
private void mode() {
System.out.println("调用了mode函数");
}
@SuppressWarnings("all")
p