Como criar uma instância de um TypeMirror

Eu tenho uma anotação que recebe um parâmetro "dinâmico" de acordo comesse idioma, ou seja, um parâmetro de um tipo de interface. Em resumo:

public interface MyInterface {}

public @interface MyAnnotation {
  Class<? extends MyInterface> value();
}

Agora, para avaliar esse parâmetro, preciso criar uma instância da implementação fornecida. A resposta vinculada acima faz isso em tempo de execução. No entanto, estou escrevendo um processador de anotação "real" (isto é, em tempo de compilação), seguindoeste tutorial. Ao trabalhar com tipos, você deve considerar que eles ainda não podem ser compilados. O tutorial lida com isso (nesse caso, para recuperar o nome do tipo) da seguinte maneira:

// Get the full QualifiedTypeName
try {
  Class<?> clazz = annotation.type();
  qualifiedSuperClassName = clazz.getCanonicalName();
  simpleTypeName = clazz.getSimpleName();
} catch (MirroredTypeException mte) {
  DeclaredType classTypeMirror = (DeclaredType) mte.getTypeMirror();
  TypeElement classTypeElement = (TypeElement) classTypeMirror.asElement();
  qualifiedSuperClassName = classTypeElement.getQualifiedName().toString();
  simpleTypeName = classTypeElement.getSimpleName().toString();
}

Portanto, para instanciar o tipo, notry bloco eu posso usarnewInstance(). Mas o que eu tenho que fazer nocatch bloco para criar uma instância? Ou não é possível porque o tipo ainda não foi compilado? Nesse caso, como resolvo o problema de "parâmetro dinâmico"?

Editar: No meu caso específico, posso recorrer ao uso de um parâmetro String e interpretá-lo como um modelo Groovy. Ainda estou procurando respostas.

questionAnswers(2)

yourAnswerToTheQuestion