class JavaCompilerFieldReaderFactory implements FieldReaderFactory {

    @Override
    public FieldReader apply(Field field) {

        Class<?> declaringClass = field.getDeclaringClass();
        Optional<String> methodName = getMethodName(declaringClass, field);

        FieldReader fieldReader = methodName.map(compile(declaringClass))
                .orElseGet(() -> fallback.apply(field));

        return fieldReader;
    }

      JavaCompilerFieldReaderFactory(JavaCompilerFacade compilerFacade, Reflections reflections, FieldReaderFactory fallback);

}