public Fields annotatedWith(final Class<? extends Annotation> annotation) {
		
		assertNotNull(annotation, Class.class);
		
		return new Fields(filter(new Criterion() {

			@Override
			public boolean evaluate(Field field) {
				
				return field.isAnnotationPresent(annotation);
			}
		}));
	}
public Fields annotatedWith ( final Class < ? extends Annotation > annotation ) { assertNotNull ( annotation , Class . class ) ; return new Fields ( filter ( new Criterion ( ) { @ Override public boolean evaluate ( Field field ) { return field . isAnnotationPresent ( annotation ) ; } } ) ) ; }
<p>Filters the {@link Field}s which are annotated with the given annotation and returns a new
instance of {@link Fields} that wrap the filtered collection.</p>

@param annotation
the {@link Field}s annotated with this type will be filtered
<br><br>
@return a <b>new instance</b> of {@link Fields} which wraps the filtered {@link Field}s
<br><br>
@since 1.3.0