如何实例化java.lang.reflect.Method?

如何实例化java.lang.reflect.Method?,java,reflection,Java,Reflection,我的方法接受方法对象作为参数。因此,我需要创建一个java.lang.reflect.Method的模拟实例。结果证明该类是final,没有公共构造函数。可以所以有没有我需要使用的工厂或者什么。。。?java.lang.reflect.ReflectAccess类是包范围的,它似乎是我正在寻找的工厂(除了我不能使用它)。这里怎么回事 是的,我总是可以得到一些类的一个实例,然后选择一个随机的方法,但我想有一个更合理的方法 提前谢谢 是的,我总是可以得到某个类的一个实例并选择一个随机方法,但我想有一

我的方法接受
方法
对象作为参数。因此,我需要创建一个
java.lang.reflect.Method
的模拟实例。结果证明该类是final,没有公共构造函数。可以所以有没有我需要使用的工厂或者什么。。。?
java.lang.reflect.ReflectAccess
类是包范围的,它似乎是我正在寻找的工厂(除了我不能使用它)。这里怎么回事

是的,我总是可以得到一些
类的一个实例
,然后选择一个随机的
方法
,但我想有一个更合理的方法

提前谢谢

是的,我总是可以得到某个类的一个实例并选择一个随机方法,但我想有一个更合理的方法

不,这是明智的做法。其他的一切都没有意义。拥有一个不属于类的方法意味着什么?当您调用它时会发生什么


如果这是为了测试,我建议您创建一个类,其中包含一个专门用于此目的的适当方法。

方法始终与类(或实例)相关,那么不从其类获取方法有什么用呢?

尝试使用反射

Constructor c = Method.class.getDeclaredConstructor(Class.class, String.class, Class[].class, Class.class, Class[].class, int.class, int.class, String.class, byte[].class, byte[].class, byte[].class);
c.setAccessible(true);
c.newInstance(....); // send correct arguments

这应该行得通

好吧,如果真的没有办法得到一个
方法的实例,那么我想我可以用一些测试方法来模拟一个虚拟类,但这并不是我想要的。@carlspring:你到底想要什么?例如,
Method.getDeclaringClass
会返回什么?一个没有声明该方法的类?这怎么会比使用真实的方法更好呢?我认为在一些用例中,这实际上是有用的;例如,在使用MethodExpression的代码和需要方法的API之间架桥时。在这种情况下,您需要根据MethodExpression的类型信息动态创建一个方法实例。查看OracleJDK中方法的源代码,如果不是最后一个修饰符,这将是相当简单的。为此目的动态合成(静态)方法(例如使用编译器API)可能是一种选择,但有点过头了……正如我(现在更新)的问题中提到的,我的方法接受
方法作为参数。为了测试起见,我想传入一些模拟的
方法
-s。显然,
方法
总是与
相关联,你显然是对的。你就不能为此创建一个模拟类吗?当然——我总是可以创建一个虚拟类进行测试,但这并不完全是我想的,这有点难看,也不是直观的事情。太棒了,我应该想到这一点!经过测试,它实际上不起作用。它抛出一个NoSuchMethodError,不幸的是它是正确的。