code: @SuppressWarnings("unchecked")
      public static <T> T getByNameAndType(Object object, String fieldName, Class<T> expectedFieldType) {
          Field foundField = findSingleFieldUsingStrategy(new FieldNameAndTypeMatcherStrategy(fieldName,
                  expectedFieldType), object, true, getType(object));
          try {
              return (T) foundField.get(object);
          } catch (IllegalAccessException e) {
              throw new RuntimeException("Internal error: Failed to get field in method getInternalState.", e);
          }
      }
docs: <p>getByNameAndType.</p>
  
  @param object a {@link java.lang.Object} object.
  @param fieldName a {@link java.lang.String} object.
  @param expectedFieldType a {@link java.lang.Class} object.
  @param <T> a T object.
  @return a T object.