public static Getter newFieldGetter(Object object, Getter parent, Field field, String modifier) throws Exception {
        return newGetter(object, parent, modifier, field.getType(), field::get,
                (t, et) -> new FieldGetter(parent, field, modifier, t, et));
    }
@Test
    public void newFieldGetter_whenExtractingFromNonEmpty_Array_FieldAndParentIsNonEmptyMultiResult_nullFirstValue_thenInferReturnType()
            throws Exception {
        OuterObject object = new OuterObject("name", new InnerObject("inner", null, 0, 1, 2, 3));

        Getter parentGetter = GetterFactory.newFieldGetter(object, null, innersArrayField, "[any]");
        Getter innerObjectNameGetter = GetterFactory.newFieldGetter(object, parentGetter, innerAttributesArrayField, "[any]");

        Class<?> returnType = innerObjectNameGetter.getReturnType();
        assertEquals(Integer.class, returnType);
    }