javassist

    0热度

    1回答

    我只想澄清一些与Javassist有关的事情。 1. ClassPool.importPackage方法是否为该类物理地添加行号?例如,如果这是我的代码: public class Test { public static void main(String[] args){ System.out.println("Message!");// Line 3 } }

    0热度

    1回答

    我想用一个库方法来调用我的Class中的一个javassist代理。 可以说我有一个类: Class A { void display() { System.out.println("Inside A.dipslay()"); } } 然后当我调用: method.insertAfter("packageName.A.display()"); 它抛出异常

    0热度

    1回答

    我有一个名为Sample的类,我需要将变量messageID重命名为NameID,这样相应的getter和setter也会被更新。 public class Sample{ String messageID; public String getMessageID() { return MessageID; } public void set

    1热度

    1回答

    我正在处理需要类的检测的项目。我使用javassist,因为在我的情况下做仪器非常方便。 我面临一个问题,可以使用下面的代码段来描述: 假设第1类: public class Class1 { Class2 class2; } 和2类: public class Class2 { //Code } 而对于一个功能从定义的类中获取CtClass,并进行一些代码转换。

    0热度

    1回答

    我需要在运行时分析java方法主体。 javassist提供了很多方法来帮助我做到这一点。但现在我需要知道给定的方法是否包含语句或循环。我怎样才能做到这一点? 大多数问题可以通过使用 method.instrument(new ExprEditor() { @Override public void edit(MethodCall m) { // do some c

    0热度

    1回答

    我正在阅读有关代码注入在运行时代码注入和子类之间的差异,并有可用如javassist,GluonJ和AspectJ许多工具/原料药,其提供的功能将代码注入。但是,我不明白在运行时注入代码的目的,而我们可以通过Java中的子类进行重写行为。使用Javassist和GluonJ,我可以在运行时创建类,但为什么有人会这样做呢?任何人都可以帮助我理解代码注入的差异和目的吗?

    1热度

    1回答

    我想使用Javassist在servelets上执行字节码检测,但挑战在于,无论使用什么工具,它都不会反映在Tomcat类中。我可以清楚地看到这是类加载器的问题,但我甚至无法使用自定义类加载器。我试图寻找任何这方面的例子,但找不到任何例子。你有没有关于如何让Tomcat与Javassist协同工作的例子?

    0热度

    1回答

    我想在一个生成的类中执行一个方法,该类扩展了一个抽象泛型,但它抛出java.lang.AbstractMethodError。 PS:不产生通用类 实施例: public abstract class AbstractSpecification<T> implements Specification<T>{ public abstract boolean isSatisfiedBy(T

    2热度

    2回答

    我正在使用Powermock,但是当我运行Eclemma覆盖时,由于EclEmma的已知问题,Powermock测试用例未在最终得分中考虑。 此,我搜索和计算器其他答案建议有周围的工作: @Rule public PowerMockRule rule = new PowerMockRule(); static { PowerMockAgent.initializeIfNeeded();

    0热度

    2回答

    第一次创建成功,但下一次类中有变化时(如添加一些变量)会引发错误。 以下是我的代码。 ClassPool pool = ClassPool.getDefault(); CtClass cc=null; final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();