content: package cn.thens.okbinder2.sample_library;
  
  import java.io.PrintWriter;
  import java.io.StringWriter;
  import java.util.Arrays;
  
  public final class Utils {
      public static String toString(Object obj) {
          if (obj == null) return "null";
          if (obj instanceof String) return (String) obj;
          if (obj instanceof Throwable) return getStackTraceString((Throwable) obj);
          if (!obj.getClass().isArray()) return obj.toString();
          if (obj instanceof boolean[]) return Arrays.toString((boolean[]) obj);
          if (obj instanceof byte[]) return Arrays.toString((byte[]) obj);
          if (obj instanceof char[]) return Arrays.toString((char[]) obj);
          if (obj instanceof short[]) return Arrays.toString((short[]) obj);
          if (obj instanceof int[]) return Arrays.toString((int[]) obj);
          if (obj instanceof long[]) return Arrays.toString((long[]) obj);
          if (obj instanceof float[]) return Arrays.toString((float[]) obj);
          if (obj instanceof double[]) return Arrays.toString((double[]) obj);
          if (obj instanceof Object[]) return Arrays.deepToString((Object[]) obj);
          return obj.toString();
      }
  
      private static String getStackTraceString(Throwable e) {
          StringWriter sw = new StringWriter();
          PrintWriter pw = new PrintWriter(sw, false);
          e.printStackTrace(pw);
          pw.flush();
          return sw.toString();
      }
  }
  