javassist

    27热度

    4回答

    我知道Javassist是一个Java库,提供了操纵应用程序的Java字节码的方法。 好的,但为什么我们需要操纵字节码? 任何一个真实的例子? 任何真正的应用程序,其中javassist使用?

    1热度

    1回答

    我在读的来源,发现这些方法在ModelInstrumentation。 public void instrument(CtClass modelClass) throws Exception { addDelegates(modelClass); CtMethod m = CtNewMethod.make("public static String getClassName()

    0热度

    1回答

    我必须使用奇怪的数据库结构,在生产时可能会有更多的表,但具有相同的列。我们希望使用JPA(Hibernate)来处理它们,通过实体/ JPQL查询。这个想法是在运行时在JVM中动态地为每个表创建实体类。这种方法工作正常。我创建实体用Javassist - 使用已经存在的编译的实体,我添加注释它动态地(实体,表): public Class generateGroupStateEntity(Stri

    11热度

    3回答

    我目前正在尝试代理一些现有的JAX/RS资源,以便允许我使用Hibernate Validator的方法验证支持。但是,当我代理我的类(当前使用cglib 2.2)时,FormParam注释不在代理类中的参数上,因此JAX/RS运行时(apache wink)不会填充参数。下面是一些测试代码,显示这一点: import static java.lang.annotation.ElementType

    5热度

    1回答

    public byte[] transform(ClassLoader loader, String className, Class<?> clazz, ProtectionDomain domain, byte[] bytes) throws IllegalClassFormatException { return inspectClass(classNam

    0热度

    1回答

    我作为Eclipse插件部署应用程序时使用了Javassist具有问题使用了Javassist, 具体而言,下面的代码: ClassPool.getDefault().get(aClassName); 是扔一个:。 如果不作为插件的一部分使用,代码可以正常工作。 我想了解问题是否出现在我的插件的类路径配置中(似乎并非如此),或者是与Eclipse应用程序在执行插件项目时使用的类加载器有关的东西

    6热度

    3回答

    我偶然发现了一个非常恼人的情况:我使用Hibernate & Spring作为我的应用程序的后端,并且似乎在某些情况下,与特定关系的实体实体不是从数据库中作为普通实体对象获取,而是作为Javassist类型获取。例如: 我有以下关系活动实体: @Entity @Table(name = "campaign") public class Campaign implements Serializa

    6热度

    3回答

    在我的程序中,我处理类和基本类型。 如果程序发现的一类,它只是将执行下列操作的呼叫的一个: Class.forName(classname) cc.toClass()其中cc是CtClass 一个实例。然而,如果它发现一个基本类型,事情变得更糟: Class.forName不可用,它不能使用与原始类型。 cc.toClass()回报null 它可以从原始类型的包装类调用TYPE场,但我怎么能与反思

    0热度

    1回答

    我在输入流中有一个类的完整源代码。是否可以使用Javassist为这个类创建一个新的CtClass对象? 我知道,与类的名称,可以创建一个新的CtClass对象的东西,如: ClassPool.getDefault().makeClass("name_of_the_new_class"); 但在我来说,我事先不知道类的名字,只是它的完整源代码(当然,我可以得到解析源代码的类的名称,但请不要告诉

    2热度

    2回答

    使用Javassist,我如何创建与我拥有的类完全相同的类,但使用不同的名称。我也想保留所有运行时注释。