code: protected static String buildListString(List<? extends Object> list, Map<Object, String> alreadyAppearedSet) {
          final String appeared = handleAlreadyAppeared(list, alreadyAppearedSet);
          if (appeared != null) {
              return appeared;
          }
          final StringBuilder listSb = new StringBuilder();
          listSb.append("[");
          int index = 0;
          for (Object element : list) {
              listSb.append(index > 0 ? ", " : "");
              listSb.append(resolveObjectString(element, alreadyAppearedSet));
              ++index;
          }
          listSb.append("]");
          final String exp = listSb.toString();
          alreadyAppearedSet.put(list, exp); // real expression
          return exp;
      }
docs: ===========