我们可以使用Javassist向类添加import语句

时间:2015-12-09 09:09:41

标签: java instrumentation javassist

我想使用通过javassist注入的行在不同的包中调用不同类中的方法。有没有其他方法直接调用这些方法而不使它们 公共静态 并使用完全限定的类名调用?在here中,它描述了importPackage()方法。但看起来它只能用于我们尝试获取所需类文件的classpool对象。

1 个答案:

答案 0 :(得分:1)

导入仅限编译时间。如果要在另一个类中调用非静态方法,则需要一些方法来获取要调用的正确对象实例,例如:

  1. 实例化
  2. 某种对象查找器
  3. 实现可以静态访问的包含对象的共享集合。
  4. 其中一个需要注入到您的类中,以便您可以获取实例,然后您可以连接实际的调用。

    如果您提供了一些代码示例,或许代码现在如何,以及您希望它是如何实现的,那么它可能会有所帮助。