code: protected void doCheckGenericBeanValidationMismatch(Field field) {
          // #hope cannot check now: public List<ROOM> roomList;
          final Class<?> genericType = getFieldGenericType(field); // only first generic #for_now
          if (genericType == null) {
              return;
          }
          if (mayBeNestedBeanType(genericType)) { // e.g. LandBean<PiariBean>
              pathDeque.push("@generic");
              doCheckNestedValidationMismatch(field, genericType);
              pathDeque.pop();
          } else if (Collection.class.isAssignableFrom(genericType)) {
              final Type fieldGenericType = field.getGenericType();
              if (fieldGenericType != null && fieldGenericType instanceof ParameterizedType) {
                  final Type[] typeArguments = ((ParameterizedType) fieldGenericType).getActualTypeArguments();
                  if (typeArguments != null && typeArguments.length > 0) {
                      final Class<?> elementType = DfReflectionUtil.getGenericFirstClass(typeArguments[0]);
                      if (elementType != null && mayBeNestedBeanType(elementType)) {
                          // e.g. public LandBean<List<PiariBean>> landBean;
                          pathDeque.push("@generic");
                          doCheckNestedValidationMismatch(field, elementType);
                          pathDeque.pop();
                      }
                  }
              }
          }
      }
docs: -----------