Code example for Field

Methods: getDeclaringClass, getName

                // injection happens. 
                if (annotation.optional()) {
                } else { 
                    throw new IllegalStateException(String.format("Can't find the mandatory extra identified by key [%s] on field %s.%s", id, field
                            .getDeclaringClass(), field.getName()));
            value = extras.get(id);
            // Context must implement InjectorProvider to enable extra conversion 
            if (context instanceof InjectorProvider) {
                Injector injector = ((InjectorProvider) context).getInjector();
                value = convert(field, value, injector);
             * Please notice : null checking is done AFTER conversion. Having 
             * @Nullable on a field means "the injected value might be null", ie