docs: @Benchmark
      public ExampleInterface benchmarkJavassist() throws Exception {
          ProxyFactory proxyFactory = new ProxyFactory() {
              protected ClassLoader getClassLoader() {
                  return newClassLoader();
              }
          };
          proxyFactory.setUseCache(false);
          proxyFactory.setUseWriteReplace(false);
          proxyFactory.setSuperclass(Object.class);
          proxyFactory.setInterfaces(new Class<?>[]{baseClass});
          proxyFactory.setFilter(new MethodFilter() {
              public boolean isHandled(Method method) {
                  return true;
              }
          });
          @SuppressWarnings("unchecked")
          Object instance = proxyFactory.createClass().getDeclaredConstructor().newInstance();
          ((javassist.util.proxy.Proxy) instance).setHandler(new MethodHandler() {
              public Object invoke(Object self,
                                   Method thisMethod,
                                   Method proceed,
                                   Object[] args) throws Throwable {
                  Class<?> returnType = thisMethod.getReturnType();
                  if (returnType.isPrimitive()) {
                      if (returnType == boolean.class) {
                          return defaultBooleanValue;
                      } else if (returnType == byte.class) {
                          return defaultByteValue;
                      } else if (returnType == short.class) {
                          return defaultShortValue;
                      } else if (returnType == char.class) {
                          return defaultCharValue;
                      } else if (returnType == int.class) {
                          return defaultIntValue;
                      } else if (returnType == long.class) {
                          return defaultLongValue;
                      } else if (returnType == float.class) {
                          return defaultFloatValue;
                      } else {
                          return defaultDoubleValue;
                      }
                  } else {
                      return defaultReferenceValue;
                  }
              }
          });
          return (ExampleInterface) instance;
      }