簡體   English   中英

如何在 Java 11 的注釋處理器中獲取帶注釋的方法參數的名稱

[英]How can I get the names of annotated method parameters in an Annotation Processor in Java 11

在 Java 8 中,我曾經能夠做到

 Symbol.MethodSymbol annotatedMethod = (Symbol.MethodSymbol) annotatedElement;

接着

annotatedMethod.params

我會得到方法參數的類型和方法聲明中的參數名稱。

現在 import com.sun.tools.javac.code.Symbol 在 Java 11 中是內部的,我可以使用以下方法獲取參數的類型:

ExecutableType executableType = (ExecutableType)annotatedElement.asType();
            List<? extends TypeMirror> parameters = executableType.getParameterTypes();

但是我怎樣才能得到參數的名字呢?

ExecutableType是“Mirror API”的一部分,一般是關於類型的。 要檢查元素,請使用“元素 API”。

在您的情況下,參數由javax.lang.model.element.VariableElement建模,並且可以使用element.getSimpleName()獲得名稱。

我猜,您的代碼中的annotatedElement是一個ExecutableElement 如果是這樣,參數的元素可以通過annotatedElement.getParameters()獲得。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM