有一段我没写过的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);
}
}
我尝试使用它作为类名,但它不起作用,任何想法?我需要某种匿名课程。
不,我无法更改源代码或向系统添加类。我控制的唯一内容是类的名称,方法的名称和其余的参数。
答案 0 :(得分:0)
我控制的唯一内容是类的名称,方法的名称和其他参数。
然后是答案:
没有办法创建一个类型并在那里使用它?