private static <T> String getMethodNameForProxyOf(Class<T> clazz, List<Class<?>> interfaces) {
    String interfacesHash = Integer.toHexString(interfaces.hashCode());
    return clazz.getName().replace(".", "/") + "_" + interfacesHash + "_Proxy";
  }
The super method must include the return type, otherwise its ambiguous for methods with
covariant return types.
android/android_framework/dex-maker/src/main/java/com/android/dx/stock/ProxyBuilder.java