### Question:
AttributeResolver extends ELResolver { @Override public Class<?> getType(ELContext context, Object base, Object property) { return getAttributed(base) .flatMap(attributed -> attributed.abacAttribute(String.valueOf(property))) .map(value -> { context.setPropertyResolved(true); return value.getClass(); }) .orElse(null); }  @Override Class<?> getCommonPropertyType(ELContext context, Object base); @Override Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base); @Override Class<?> getType(ELContext context, Object base, Object property); @Override Object getValue(ELContext context, Object base, Object property); @Override boolean isReadOnly(ELContext context, Object base, Object property); @Override void setValue(ELContext context, Object base, Object property, Object value);  }### Answer:
@Test void testGetType() { AttributeResolver ar = new AttributeResolver(); ELContext context = Mockito.mock(ELContext.class); Class<?> type = ar.getType(context, new MyResource(Map.of("name", new HashMap<>())), "name"); assertThat(type, notNullValue()); assertThat(type, sameInstance(HashMap.class)); }