public static Type[] getExactParameterTypes(Executable m, Type declaringType) {
    return stream(
            GenericTypeReflector.getExactParameterTypes(
                m, GenericTypeReflector.annotate(declaringType)))
        .map(annType -> uncapture(annType.getType()))
        .toArray(Type[]::new);
  }
@Test
  public void getExactParameterTypes() {
    var type = Types.parameterizedType(Container.class, Person.class);

    var ctor = Container.class.getDeclaredConstructors()[0];
    assertThat(Reflection.getExactParameterTypes(ctor, type)).isEqualTo(new Type[] {Person.class});

    var method = Container.class.getDeclaredMethods()[0];
    assertThat(Reflection.getExactParameterTypes(method, type))
        .isEqualTo(new Type[] {Person.class});
  }