code: public static <T> T objectDeepCopyWithBlackList(Object from, Object to, String... blockFields) {
  
          if (to == null) {
              to = getNewInstance(from.getClass());
          }
  
          List<String> whiteList = new ArrayList<>();
  
          Method[] methods = from.getClass().getMethods();
  
          for (Method m : methods) {
  
              if (!isGetterMethod(m)) {
                  continue;
              }
  
              if (isBlockFieldMethod(m, blockFields)) {
                  continue;
              }
  
              whiteList.add(getFieldNameFromMethod(m));
  
          }
  
          return objectDeepCopyWithWhiteList(from, to, whiteList.toArray(new String[whiteList.size()]));
  
      }
docs: Object deep copy with black list t.
  
  @param <T>         the type parameter
  @param from        the from
  @param to          the to
  @param blockFields the block fields
  @return the t