code: @NonNull
      public static String nameOf(@NonNull Object object) {
          String name = object.getClass().getCanonicalName();
          name = name != null ? name : object.getClass().getSimpleName();
          return name;
      }
docs: Returns a name for the supplied {@code object}. Uses either {@code object.getClass().getCanonicalName()},
  or {@code object.getClass().getSimpleName()} if the former returns null.
  
  @param object The {@code object} for which to generate a name.
  @return a name for the supplied {@code object}.