private @NotNull List<Object> createKey() {
    List<Object> tuple = new ArrayList<>();
    tuple.add(Arrays.asList(callbackTypes));
    tuple.add((useFactory ? 1 : 0) + (interceptDuringConstruction ? 2 : 0));
    if (superclass != null) tuple.add(superclass.getName());
    if (interfaces != null) {
      tuple.addAll(ContainerUtil.map(interfaces, Class::getName));
    }
    return tuple;
  }
private @NotNull List<Object> createKey()