在 CodeIgniter 中,当我转到 URIexample.com/index.php/blog/showitem/253
时,它会加载控制器blog
并执行方法showitem(253)
。
使用 Java 中的反射可以实现这样的事情吗?例如,我有一个方法loadController(String controllerName, String method, Objects args...)
,它使用正确的方法和可变数量的参数初始化正确的控制器。
我知道我可以从字符串初始化类,调用方法,但我被困在可变数量的参数上。这就是我现在拥有的:
public static void switchController(String controllerName, String methodName, Object ... args)
{
try {
Class controller = Class.forName("director.controllers." + controllerName);
Method method = controller.getDeclaredMethod(methodName, Object[].class);
method.invoke(controller.newInstance(), args);
我想要的是我可以NewsController
用这样的showOne(int id)
方法加载:
switchController("NewsController", "showOne", 124);
这可能吗?如果可以,怎么做?