![](/img/trans.png)
[英]Using Java reflection, how do I get parameterized types of parameters to a Method?
[英]Using Java Annotation Processor To Understand Parameterized Types Of Method Parameters
我正在嘗試使用注釋處理器來驗證注釋,為此,我試圖弄清楚如何使用API來確定ExecutableElement的Parameter是否為參數化類型(例如List <Foo>) ,如果是,則參數化的類型是(Foo)。
除了解析ve.asType()。toString()給出的字符串(還有VariableElement ve是ExecutableElement e.getParameters()的元素)之外,還有什么方法可以做到這一點? 與僅使用字符串相比,對這些類型有更好的處理將是很好的。
這個想法是要知道何時將其強制轉換為什么,在這種情況下,您需要獲取泛型類型參數,因此您需要DeclaredType
轉換為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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.