code: public static Field findProperty(final Class<?> sourceClass, final String itemName, final Class<?> searchedClass) {
  
          Field found = null;
  
          if (itemName != null && !itemName.trim().isEmpty()) {
              try {
                  found = sourceClass.getField(ClassUtility.underscoreToCamelCase(itemName));
              } catch (NoSuchFieldException | SecurityException e) {
                  found = null;
              }
          }
          if (found == null) {
              Field f = null;
              for (int i = 0; found == null && i < sourceClass.getFields().length; i++) {
                  f = sourceClass.getFields()[i];
                  if (f.getClass().equals(searchedClass)) {
                      found = f;
                  }
              }
          }
          return found;
      }
docs: Retrieve a field according to the item name first, then according to searched class.
  
  @param sourceClass the class to inspect
  @param itemName the item name to find (LIKE_THIS)
  @param searchedClass the property class to find if item name query has failed
  
  @return the source class field that match provided criterion