diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java index 6a78664279..b2c0d26636 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java @@ -15,7 +15,6 @@ */ package org.androidannotations.helper; - import java.io.StringWriter; import java.lang.reflect.Field; import java.util.ArrayList; @@ -81,7 +80,11 @@ public JClass typeMirrorToJClass(TypeMirror type, GeneratedClassHolder holder) { TypeMirror extendsBound = wildcardType.getExtendsBound(); - return typeMirrorToJClass(extendsBound, holder).wildcard(); + if (extendsBound == null) { + return holder.classes().OBJECT.wildcard(); + } else { + return typeMirrorToJClass(extendsBound, holder).wildcard(); + } } else if (type instanceof ArrayType) { ArrayType arrayType = (ArrayType) type; @@ -193,25 +196,25 @@ public JBlock removeBody(JMethod method) { return clonedBody; } - public void replaceSuperCall(JMethod method, JBlock replacement) { - String superCallStart = "super."+method.name()+"("; - - JBlock oldBody = removeBody(method); - JBlock newBody = method.body(); - - for (Object content : oldBody.getContents()) { - StringWriter writer = new StringWriter(); - JFormatter formatter = new JFormatter(writer); - JStatement statement = (JStatement) content; - statement.state(formatter); - String statementString = writer.getBuffer().toString(); - if (statementString.startsWith(superCallStart)) { - newBody.add(replacement); - } else { - newBody.add(statement); - } - } - } + public void replaceSuperCall(JMethod method, JBlock replacement) { + String superCallStart = "super." + method.name() + "("; + + JBlock oldBody = removeBody(method); + JBlock newBody = method.body(); + + for (Object content : oldBody.getContents()) { + StringWriter writer = new StringWriter(); + JFormatter formatter = new JFormatter(writer); + JStatement statement = (JStatement) content; + statement.state(formatter); + String statementString = writer.getBuffer().toString(); + if (statementString.startsWith(superCallStart)) { + newBody.add(replacement); + } else { + newBody.add(statement); + } + } + } public String getIdStringFromIdFieldRef(JFieldRef idRef) { try { @@ -258,7 +261,7 @@ public JDefinedClass createDelegatingAnonymousRunnableClass(EComponentHolder hol /** * Gets all of the methods of the class and includes the methods of any * implemented interfaces. - * + * * @param typeElement * @return full list of methods. */ diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/process/ProcessHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/process/ProcessHolder.java index 7ed8aeb011..367e0fe307 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/process/ProcessHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/process/ProcessHolder.java @@ -60,6 +60,7 @@ public class Classes { public final JClass THREAD = refClass(Thread.class); public final JClass HASH_MAP = refClass(HashMap.class); public final JClass LIST = refClass(List.class); + public final JClass OBJECT = refClass(Object.class); /* * Android @@ -190,7 +191,7 @@ public class Classes { public ProcessHolder(ProcessingEnvironment processingEnvironment) { this.processingEnvironment = processingEnvironment; - this.codeModel = new JCodeModel(); + codeModel = new JCodeModel(); classes = new Classes(); refClass(CanonicalNameConstants.STRING); preloadJavaLangClasses(); diff --git a/AndroidAnnotations/functional-test-1-5/res/layout/item_clicks_handled.xml b/AndroidAnnotations/functional-test-1-5/res/layout/item_clicks_handled.xml index bfdadfec7a..56b50ee0ef 100644 --- a/AndroidAnnotations/functional-test-1-5/res/layout/item_clicks_handled.xml +++ b/AndroidAnnotations/functional-test-1-5/res/layout/item_clicks_handled.xml @@ -50,6 +50,12 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" /> + + item) { listViewParametrizedItemClicked = true; } + @ItemClick(R.id.listViewWithArgumentWithGenericWildcard) + protected void listViewWithArgumentWithGenericWildcardType(ArrayList item) { + listViewParametrizedItemClicked = true; + } + @ItemClick public void spinner() { spinnerItemClicked = true;