docs: @SuppressWarnings("unchecked")
  	public static <T> T get(Class<T> clazz, Object... params) {
  		T obj = (T) pool.get(clazz);
  
  		if (null == obj) {
  			synchronized (Singleton.class) {
  				obj = (T) pool.get(clazz);
  				if (null == obj) {
  					obj = ReflectUtil.newInstance(clazz, params);
  					pool.put(clazz, obj);
  				}
  			}
  		}
  
  		return obj;
  	}