Java 欺骗反射器
有一段java代码不是我写的,我无法更改它,它使用反射器调用类的方法。类似这样的内容(我没有看到代码): 到目前为止还不错 我控制类的名称、方法的名称和参数。我可以发送这些参数的任意组合,但有一个缺点:第一个参数是硬编码的,所以我发送的任何参数都会附加到params数组中。因此,该方法必须接受该参数 我的问题是:有没有办法创建一个类型并在其中使用它?大概是这样的:Java 欺骗反射器,java,Java,有一段java代码不是我写的,我无法更改它,它使用反射器调用类的方法。类似这样的内容(我没有看到代码): 到目前为止还不错 我控制类的名称、方法的名称和参数。我可以发送这些参数的任意组合,但有一个缺点:第一个参数是硬编码的,所以我发送的任何参数都会附加到params数组中。因此,该方法必须接受该参数 我的问题是:有没有办法创建一个类型并在其中使用它?大概是这样的: public class PrintWrapper { public static void println
public class PrintWrapper {
public static void println(Somethingtype Something, String arg) {
System.out.println(arg);
}
}
我试着用它作为类名,但没用,知道吗?我需要某种匿名的课程或是别的什么
不,我不能更改源代码或向系统中添加类。我只控制类的名称、方法的名称和其他参数
我只控制类的名称、方法的名称和其他参数
那么答案是:
没有办法创建一个类型并在其中使用它
很抱歉,我不明白你想做什么。什么是
pt
-你需要包括这个问题才能理解。pt是一个类对象数组,按声明的顺序标识方法的形式参数类型。这是由省略号处理的…:D是的,但你不让我们知道第一个条目是什么……你想入侵在线法官系统还是类似的东西?太糟糕了。让我来改革一下这个问题:你认为有没有一种方法可以执行没有输入的方法?如果我知道我不会问:你想实现什么?我想能够运行一个类的方法。但现在,如果方法接受第一个参数,我就可以这样做。您只能调用存在的方法
public class PrintWrapper {
public static void println(Somethingtype Something, String arg) {
System.out.println(arg);
}
}