0

有一段 java 代码不是我写的,我无法更改它使用反射器调用类的方法。像这样的东西(我还没有看到代码):

    ....
    params[0] = Something;
    ....
    Class c = Class.forName(Name);
    Method m = c.getDeclaredMethod(MethodName, pt);
    if (Modifier.isStatic(m.getModifiers()))
    {
        res = m.invoke(null, params);
    }
    else
    {
        obj = c.newInstance();
        res = m.invoke(obj, params);
    }
    ....

到目前为止,一切都很好。

我控制类的名称、方法的名称和参数。我可以发送这些的任意组合,但有一个问题:第一个参数是硬编码的,所以我发送的任何参数都附加到 params 数组中。所以该方法必须接受该参数。

我的问题是:有没有办法创建一个类型并在那里使用它?像这样的东西:

    public class PrintWrapper {
        public static void println(Somethingtype Something, String arg) {
            System.out.println(arg);
        }
    }

我尝试使用它作为类名,但它不起作用,知道吗?我需要某种匿名类或其他东西。

不,我不能更改源代码或向系统添加类。我唯一控制的是类名、方法名和其余参数。

4

1 回答 1

0

我唯一控制的是类名、方法名和其余参数。

然后是答案:

没有办法创建一个类型并在那里使用它?

于 2013-05-02T13:32:44.837 回答