当一个类中有多个方法时,需要通过指定的参数,去对应调用相应的方法。一般会使用if else语句或者switch语句,十分冗余,后期类的方法增加时,还需改动代码。
我们可以利用反射优化这一问题,显示代码如下:
import java.lang.reflect.Method;
public class User {
public void login() {
System.out.println("login方法被执行");
}
public void register() {
System.out.println("register方法被执行");
}
public static void action(String act){
try {
Method method=User.class.getDeclaredMethod(act);
method.invoke(new User());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
action("login");
action("register");
}
}
运行结果:
很实用的方法,但是可能降低效率.....