Идея состоит в том, чтобы знать, когда приводить к чему, в вашем случае вам нужно получить аргумент универсального типа, поэтому вам нужно привести к DeclaredType
.
например, для метода, подобного следующему
@SampleAnno
public void something(List<String> paramx){
}
код в процессоре, подобном этому
ExecutableElement method = (ExecutableElement) this.sampleElement;
method.getParameters()
.forEach(parameter -> ((DeclaredType)parameter.asType()).getTypeArguments()
.forEach(typeMirror -> {
messager.printMessage(Diagnostic.Kind.NOTE, "::::::: > [" + typeMirror.toString() + "]");
}));
должен распечатать
Information:java: ::::::: > [java.lang.String]