public static <T> T clone(T object) { if (object instanceof Collection) { Collection co = (Collection) object; return (T) clone(co); } else if (object instanceof Map) { Map map = (Map) object; return (T) clone(map); } else { String s = JSON.toJSONString(object); return (T) JSON.parseObject(s, object.getClass()); } }