awaitility/src/main/java/org/awaitility/reflect/WhiteboxImpl.java
@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);
        }
    }
@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);
        }
    }
<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.