"test.reader.TestAnnotations$Complex", Target.METHOD
"test.TestAnnotations$Complex", Target.METHOD
    public void testReadInResolvedValues() {        Annotation annotation = Annotations.getAnnotation(                "test.reader.TestAnnotations$Complex", Target.METHOD        );        TestAnnotations.Complex ann = (TestAnnotations.Complex)annotation;        assertEquals(111, ann.i());        double[] doubleArr = ann.doubleArr();        assertEquals(1.1D, doubleArr[0], 0);        assertEquals(2.2D, doubleArr[1], 0);        assertEquals(3.3D, doubleArr[2], 0);        assertEquals(4.4D, doubleArr[3], 0);        assertEquals(double[][][].class, ann.type());        Class[] types = ann.typeArr();        assertEquals(Target[].class, types[0]);        assertEquals(Target.class, types[1]);        AnnotationElement.Type enumRef = ann.enumeration();        assertTrue(enumRef.equals(AnnotationElement.Type.ANNOTATION));        // second time -> values are not resolved again but cache is used        annotation = Annotations.getAnnotation(                "test.reader.TestAnnotations$Complex", Target.METHOD        );        ann = (TestAnnotations.Complex)annotation;        assertEquals(111, ann.i());        doubleArr = ann.doubleArr();        assertEquals(1.1D, doubleArr[0], 0);        assertEquals(2.2D, doubleArr[1], 0);        assertEquals(3.3D, doubleArr[2], 0);        assertEquals(4.4D, doubleArr[3], 0);        assertEquals(double[][][].class, ann.type());        types = ann.typeArr();        assertEquals(Target[].class, types[0]);        assertEquals(Target.class, types[1]);        enumRef = ann.enumeration();        assertTrue(enumRef.equals(AnnotationElement.Type.ANNOTATION));    }