@Test public void forMethodParameterWithNestingAndLevels() throws Exception { Method method = Methods.class.getMethod("nested", Map.class); MethodParameter methodParameter = MethodParameter.forExecutable(method, 0); methodParameter.increaseNestingLevel(); methodParameter.setTypeIndexForCurrentLevel(0); ResolvableType type = ResolvableType.forMethodParameter(methodParameter); assertThat(type.resolve(), equalTo((Class) Map.class)); assertThat(type.getGeneric(0).resolve(), equalTo((Class) String.class)); assertThat(type.getGeneric(1).resolve(), equalTo((Class) Integer.class)); }
@Override protected AbstractDescriptor nested(Class<?> type, int typeIndex) { MethodParameter methodParameter = new MethodParameter(this.methodParameter); methodParameter.increaseNestingLevel(); methodParameter.setTypeIndexForCurrentLevel(typeIndex); return new ParameterDescriptor(type, methodParameter); }
@Override protected AbstractDescriptor nested(Class<?> type, int typeIndex) { MethodParameter methodParameter = new MethodParameter(this.methodParameter); methodParameter.increaseNestingLevel(); methodParameter.setTypeIndexForCurrentLevel(typeIndex); return new BeanPropertyDescriptor(type, this.property, methodParameter, this.annotations); }
if (methodParam != null) { methodParam.increaseNestingLevel(); methodParam.setTypeIndexForCurrentLevel(0); methodParam.setTypeIndexForCurrentLevel(1);