@Override
	public void scan(BiConsumer<Integer, Annotation> consumer, AnnotatedElement annotatedEle, Predicate<Annotation> filter) {
		filter = ObjectUtil.defaultIfNull(filter, a -> annotation -> true);
		for (final Annotation annotation : annotatedEle.getAnnotations()) {
			if (AnnotationUtil.isNotJdkMateAnnotation(annotation.annotationType()) && filter.test(annotation)) {
				consumer.accept(0, annotation);
			}
		}
	}
@Test
	public void scanTest() {
		AnnotationScanner scanner = new FieldAnnotationScanner();
		Field field = ReflectUtil.getField(Example.class, "id");
		Map<Integer, List<Annotation>> map = new HashMap<>();
		scanner.scan(
			(index, annotation) -> map.computeIfAbsent(index, i -> new ArrayList<>()).add(annotation),
			field, null
		);
		assertEquals(1, map.size());
		assertEquals(1, map.get(0).size());
		assertEquals(AnnotationForScannerTest.class, map.get(0).get(0).annotationType());
	}