您可以代表另一个类通过反射调用方法吗?



我有一个client.class,它使用Util.class调用target.class上的一个方法。通过对target.class的方法调用setAccessible(true)来强制调用。

问题:是否有一种方法可以让这个Util.class确定client.class是否可以访问target.class的这个特定方法?

我想跳过必须使用setAccessible(true)方法。client.class可以访问我在target.class中调用的方法,但是Util.class没有访问权限,因为该方法是受保护的或默认的。

您可以通过检查包、继承链和方法的可访问性来确定客户端类是否可以访问该方法。看一下Java教程中的MethodModifierSpy类。

但是即使客户端类有访问权,当Util没有访问权时,您在Util中的代码仍然需要调用setAccessible(true),因为反射代码是Util的一部分,而不是客户端类。

相关内容

  • 没有找到相关文章

最新更新