返回对象的描述，这里为了避免用户数据隐私的泄露，只是返回对象本身的描述 类名@hashcode
@param object 对象
@return 对象的描述
336416
public static String objDesc(Object object) {
        return object == null ? "null" : (object.getClass().getName()+'@'+Integer.toHexString(object.hashCode()));
    }
1239893
@Override
	public String asString(Object object) {
		assert object != null;
		assert object instanceof Class;
		return ((Class<?>) object).getCanonicalName();
	}
1204191
public Object getProperty(Object object) {
        return java.lang.reflect.Array.getLength(object);
    }
1299817
public String serialize(Object object) throws ConverterException {
	deep = 0;
	StringBuilder sb = new StringBuilder();
	_serialize(object, sb, new HashSet<Object>());
	return sb.toString();
    }
445771
public static byte[] serialize(final Serializable object) {
        val outBytes = new ByteArrayOutputStream();
        serialize(object, outBytes);
        return outBytes.toByteArray();
    }
417047
private static void toStringField(Object object) {
		StringBuffer buffer = (StringBuffer)ThreadUtils.getAttribute(TOSTRING_TCBUFF);

		if(object == null) {
			buffer.append(TOSTRING_EMPTY);
		} else {
			Class<?> clazz = object.getClass();
			if(clazz.isPrimitive()) {
				buffer.append(object.toString());
			} else {
				@SuppressWarnings("unchecked")
				Set<String> converted = (Set<String>)ThreadUtils.getAttribute(TOSTRING_TCATTR);
				String hexHash = Integer.toHexString(System.identityHashCode(object));
				if(converted.contains(clazz.getCanonicalName() + "@" + hexHash)) {
					buffer.append(clazz.getSimpleName()).append('@').append(hexHash)
							.append(TOSTRING_REPEATE);
				} else {
					buffer.append(object.toString());
				}
			}
		}
	}
110580
public static String format(Object object) {
        Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
        JsonParser jp = new JsonParser();
        JsonElement je = jp.parse(gson.toJson(object));
        String prettyJsonString = gson.toJson(je);
        //简单处理function
        String[] lines = prettyJsonString.split("\n");
        lines = replaceFunctionQuote(lines);
        StringBuilder stringBuilder = new StringBuilder();
        for (String line : lines) {
            stringBuilder.append(line);
        }
        return stringBuilder.toString();
    }
464248
private static void toStringObject(Class<?> clazz, Object object) {
		StringBuffer buffer = (StringBuffer)ThreadUtils.getAttribute(TOSTRING_TCBUFF);

		String hexHash = Integer.toHexString(System.identityHashCode(object));
		if(0 == buffer.length()) {
			buffer.append(clazz.getSimpleName()).append('@')
					.append(hexHash).append(TOSTRING_PREFIX);
		}

		@SuppressWarnings("unchecked")
		Set<String> converted = (Set<String>)ThreadUtils.getAttribute(TOSTRING_TCATTR);
		converted.add(object.getClass().getCanonicalName() + "@" + hexHash);

		// Rekurencyjne przeglądanie wszystkich klas nadrzędnych:
		Class<?> superClass = clazz.getSuperclass();
		if(superClass != null) {
			toStringObject(superClass, object);
		}

		String hyphen = "";
		if(TOSTRING_PREFIX.charAt(0) != buffer.charAt(buffer.length() - 1)) {
			hyphen = TOSTRING_HYPHEN;
		}

		for(Field field: clazz.getDeclaredFields()) {
			try {
				field.setAccessible(true);
				if(field.isAnnotationPresent(InToString.class)) {
					InToString inToString = field.getAnnotation(InToString.class);
					if(!inToString.ignore()) {
						String name = inToString.name();
						buffer.append(hyphen)
								.append((name.length() > 0)? name : field.getName())
								.append(TOSTRING_COLON);
						toStringField(field.get(object));
						hyphen = TOSTRING_HYPHEN;
					}
				} else if((field.getModifiers() & (Modifier.STATIC | Modifier.FINAL)) == 0) {
					buffer.append(hyphen).append(field.getName()).append(TOSTRING_COLON);
					toStringField(field.get(object));
					hyphen = TOSTRING_HYPHEN;
				}
			} catch(Exception e) {
				// TODO: Zaimplementować logowanie wyjątku
				e.printStackTrace();
			}
		}
	}
862019
public static Map<String, Object> read(Object object) {
        PropertyDescriptor[] descriptors;
        Class<?> clazz = object.getClass();

        try {
            descriptors = getPropertyDescriptors(clazz);
        } catch (IntrospectionException e) {
            LOG.error("Failed to introspect " + clazz, e);
            return Collections.emptyMap();
        }

        HashMap<String, Object> map = new HashMap<>(descriptors.length);

        for (PropertyDescriptor pd : descriptors) {
            try {
                Object value = pd.getReadMethod().invoke(object);
                map.put(pd.getName(), value);
            } catch (IllegalAccessException | InvocationTargetException | IllegalArgumentException e) {
                LOG.error("Failed to visit property " + pd.getName(), e);
            }
        }

        map.remove("class");

        return map;
    }
242015
public Optional<UUID> getId(final Object object) {
        return Optional.ofNullable(objectToId.get(object));
    }
198214
public static String fullObjectName(Object object) {
        if (object == null) {
            return "<null>";
        }
        StringBuilder builder = new StringBuilder();
        builder.append(object.getClass().getName())
            .append('#')
            .append(objectId(object));
        return builder.toString();
    }
910237
public HashCodeBuilder append(final Object object) {
        if (object == null) {
            iTotal = iTotal * iConstant;

        } else {
            if(object.getClass().isArray()) {
                // 'Switch' on type of array, to dispatch to the correct handler
                // This handles multi dimensional arrays
                if (object instanceof long[]) {
                    append((long[]) object);
                } else if (object instanceof int[]) {
                    append((int[]) object);
                } else if (object instanceof short[]) {
                    append((short[]) object);
                }
418188
public static byte[] objectToBytes(Object object) throws IOException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream os = new ObjectOutputStream(baos);
    os.writeObject(object);
    return baos.toByteArray();
  }
910284
public T get(Object key) {
		if (circle.isEmpty()) {
			return null;
		}
		int hash = hashFunc.hash(key);
		if (!circle.containsKey(hash)) {
			SortedMap<Integer, T> tailMap = circle.tailMap(hash);	//返回此映射的部分视图，其键大于等于 hash
			hash = tailMap.isEmpty() ? circle.firstKey() : tailMap.firstKey();
		}
		//正好命中
		return circle.get(hash);
	}
604204
protected <T> byte[] encode(T object) {
    return object != null ? serializer().encode(object) : null;
  }
1031963
public static String toPrettyJson(Object object){
		try {			
			return getMapper().writerWithDefaultPrettyPrinter().writeValueAsString(object);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
282614
public Iterator<?> getBshIterator(final Object obj) {
        if (obj == null)
            return this.emptyIt();
        if (obj instanceof Primitive)
            return this.getBshIterator(Primitive.unwrap(obj));
        if (obj.getClass().isArray())
            return this.arrayIt(obj);
        if (obj instanceof Iterable)
            return this.getBshIterator((Iterable<?>) obj);
        if (obj instanceof Iterator)
            return this.getBshIterator((Iterator<?>) obj);
        if (obj instanceof Enumeration)
            return this.getBshIterator((Enumeration<?>) obj);
        if (obj instanceof CharSequence)
            return this.getBshIterator((CharSequence) obj);
        if (obj instanceof Number)
            return this.getBshIterator((Number) obj);
        if (obj instanceof Character)
            return this.getBshIterator((Character) obj);
        if (obj instanceof String)
            return this.getBshIterator((String) obj);
        return this.reflectNames(obj).iterator();
    }