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);
これは可能ですか?