From 240c51e8f4f2a23d1128e17a81eab089aefca2af Mon Sep 17 00:00:00 2001 From: WonderCsabo Date: Wed, 16 Sep 2015 20:10:48 +0200 Subject: [PATCH] Properly override varags methods --- .../androidannotations/helper/APTCodeModelHelper.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java index 1d00f27be2..b59ed36f74 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java @@ -212,8 +212,11 @@ public JMethod overrideAnnotatedMethod(ExecutableElement executableElement, Gene method.generify(typeDeclaration.getKey(), typeDeclaration.getValue()); } + int i = 0; for (VariableElement parameter : executableElement.getParameters()) { - addParamToMethod(method, parameter, JMod.FINAL, actualTypes); + boolean varParam = i == executableElement.getParameters().size() - 1 && executableElement.isVarArgs(); + addParamToMethod(method, parameter, JMod.FINAL, actualTypes, varParam); + i++; } for (TypeMirror superThrownType : executableElement.getThrownTypes()) { @@ -266,10 +269,10 @@ private JMethod findAlreadyGeneratedMethod(ExecutableElement executableElement, return null; } - private void addParamToMethod(JMethod method, VariableElement parameter, int mod, Map actualTypes) { + private void addParamToMethod(JMethod method, VariableElement parameter, int mod, Map actualTypes, boolean varParam) { String parameterName = parameter.getSimpleName().toString(); JClass parameterClass = typeMirrorToJClass(parameter.asType(), actualTypes); - JVar param = method.param(mod, parameterClass, parameterName); + JVar param = varParam ? method.varParam(parameterClass.elementType(), parameterName) : method.param(mod, parameterClass, parameterName); copyNonAAAnnotations(param, parameter.getAnnotationMirrors()); }