ClassPool classPool = ClassPool.getDefault();
classPool.insertClassPath(new ClassClassPath(FieldProxy.class));
classPool.importPackage(Field.class.getCanonicalName());
CtClass cc = classPool.makeClass("com.firefly.utils.ProxyField" + UUID.randomUUID().toString().replace("-", ""));
cc.addInterface(classPool.get(FieldProxy.class.getName()));
cc.addField(CtField.make("private Field field;", cc));
CtConstructor constructor = new CtConstructor(new CtClass[]{classPool.get(Field.class.getName())}, cc);
constructor.setBody("{this.field = (Field)$1;}");
cc.addConstructor(constructor);