for (int i = 0; i < interfaces.length; i++) {
final Class<?> anInterface = interfaces[i];
interfaceNames[i] = anInterface.getName().replace('.','/');
}
cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, proxyClassFileName, null, classFileName, interfaceNames);
cw.visitSource(classFileName + ".java", null);
cw.visitAnnotation("L" + Proxy.class.getName().replace('.', '/') + ";", true).visitEnd();
// push InvocationHandler fields