Let's inspect the @Ripe annotation of the eat() method from the Melon class:
First, let's fetch all the declared annotations, and afterward, let's resume to @Ripe:
Class<Melon> clazz = Melon.class;
Method methodEat = clazz.getDeclaredMethod("eat");
Annotation[] methodAnnotations = methodEat.getDeclaredAnnotations();
The returned array printed via Arrays.toString() reveals a single result:
[@modern.challenge.Ripe(value=true)]
And let's cast methodAnnotations[0] to Ripe:
Ripe ripeAnnotation = (Ripe) methodAnnotations[0];
System.out.println("@Ripe value: " + ripeAnnotation.value());
Or we can use the getDeclaredAnnotation() method to fetch the right type directly:
Ripe ripeAnnotation = methodEat.getDeclaredAnnotation(Ripe.class);