Von ExecutableType können wir die Parametertypen mit getParameterTypes() überprüfen. Ich kann jedoch keinen Mechanismus zur Überprüfung der Parameternamen finden.Überprüfen der Parameternamen vom Annotation Processor
Ich verstehe, dass in < = Java 7 die Parameternamen nicht im Bytecode beibehalten werden. Allerdings würde ich immer noch auf die Argumentnamen arg0
, arg1
zugreifen können.
Wenn der Compiler ein Java 8 Compiler ist, der mit dem -parameters
Flag läuft, würde ich erwarten, die ursprünglichen Parameternamen aus dem Quellcode zu erhalten.
Gibt es einen Mechanismus, den ich übersehen habe? Es ist merkwürdig, dass wir dies mithilfe der Reflection-API unter Verwendung von Parameter.getName() abfragen können, wenn wir diese Informationen während der Annotationsverarbeitung nicht abrufen können.
Ereignis mit dem ExecutableElement die Typnamen werden immer als "arg0" zurückgegeben, ... – ctron
Entschuldigung, zu spät, um auf diesen Kommentar zu antworten. Die Namen "arg0", "arg1" usw. werden in der Frage angesprochen - wenn Sie mit Java 7 oder früher oder mit Java 8 ohne das '-Parameters'-Flag bauen, dann werden Parameternamen nicht im Bytecode gespeichert . In diesem Fall erscheinen sie als 'arg0',' arg1' usw. – jbunting