0

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);

これは可能ですか?

4

1 に答える 1