private ArrayProxy _getArrayProxy(Class<?> clazz) throws Throwable {
// long start = System.currentTimeMillis();
ClassPool classPool = ClassPool.getDefault();
classPool.insertClassPath(new ClassClassPath(ArrayProxy.class));
CtClass cc = classPool.makeClass("com.firefly.utils.ArrayField" + UUID.randomUUID().toString().replace("-", ""));
cc.addInterface(classPool.get(ArrayProxy.class.getName()));
cc.addMethod(CtMethod.make(createArraySizeCode(clazz), cc));
cc.addMethod(CtMethod.make(createArrayGetCode(clazz), cc));
cc.addMethod(CtMethod.make(createArraySetCode(clazz), cc));